add submodule and base classes