Pushing a new state should allow: 1. Choosing between pushing or replacing. 2. Saving arbitrary data.