throw a Rollback error when `compose` fails
refactor to shorten the `run` method and make it more explicit