added baseline to remove revertible action, and delegate all state changes to a single object that can process a defined object