Very simple way to create and manage History Points from Objects. You can store States of Objects and also Actions regarding to an Object or even static Actions. There is an easy, but very simple customiceable, way to create History Points from one or more Objects.
Create an PaintingControl and add several PaintingObjects containing visual objects. The PaintingControl has some user actions that can be enabled/disabled. Also you can completly customize the drawing process of an PaintingObject. It is very simple to use.