move some methods from abstract class to interface by defaults