C&P this: https://github.com/mdsol/crichton/blob/develop/lib/crichton/descriptor/transition_decorator.rb#L69