Adding submodules and functionallities