refactored submodule add to allow parameters