abstract controller commit