chenged interface to abstract class