86869 problem reservations transactable

this depends on #145; need some help with writing the best tests for this
@jhanggi i'd prefer to get this out and do the refactoring as a new issue (since there are other scopes to touch and this one is sufficiently complicated)