Change controller to support modules
Generalize module argument
Add provider module capabilities
Use module inside provider templates
Fix Tests

Tests were obviously broken. We need more tests about the module feature