adding an abstract method impl