added interface methods to abstract classes