and a reverse for easier precondition checks