Implement abstract controller