better organised, preloader now makes sense