added interface to abstract class