recursive init for submodules