architecture + modulesFactory refactor