moved dependencies into submodules