Adding default implementations. Moved unit tests
Making controllers abstract classes. Adding default implementation
Using Primary types for classe overrides