Created interfaces and implementations for controllers.