Let's add some history management.

The implementation I have here is far from perfect. It required some work around to get the arrow up callback.