made components depend less on each other at initialization