The dirty tracking API could be made much more useful with some additional methods being provided. Taking from Sequel:
#column_changes
{name: ['old', 'new']}
#initial_value(column)
'old'
#initial_values
{name: 'old', amount: 0}
#reset_column(column)
obj.name => 'old'