Replaced interface with abstract class.