Added abstract class for controller creating