converting submodules to be private

**NOT READY FOR MERGE**, just letting the tests run as I go. 
The relative import might not work with extensions