refactor reportError to also have reportOK, etc