break controller up into a few submodules