fix abstract controller