Feature: adding revert and save methods to set isDirty and call super