Submodule initialization refactored