added an abstract method to provide for customized error logging