methods to be defined