Handle the history of object states
Push a new state in the state controllers
Remove the state from the state controllers
Update a state and recompute the final state of the objects
Handle the history of object states