Added an abstract controller