Phase 3 of changes from feature/modules_integration

This was part of my attempt to both reduce code complexity and to reduce complexity of the internal api presented by the controllers module.  This is certainly something to come back to later, but for right now the race condition just creates a bizarre display and not actually any behavioral issues.