Refactor submodules

alright, this should make things more straightforward for future PRs