change default implementation to return errors