broke apart nested modules into separate files
part of last commit (cleanup)