put some methods to base class as abstract