Apicontroller abstract class.
Merge branch 'apicontroller' into develop