some inheritance responsibilities changed
introduced RollbackReason object