add self-initializing submodels