create abstract base enums controller