Changed controller interface to abstract class