when exactly does DOMContentLoaded fire?