virtualized functions to be overridden