allow handlers to return errors