this is class specific function, which should be implemented in child class