Er der nogen der ude der har noget praktiske erfaring med at lave en undo/redo funktion?

Jeg skal nemlig lave en AIR applikation med en undo/redo funktion, og inden jeg begynder at bygge noget op fra bunden, ville jeg høre om der er nogen der har et par gode råd?

Indtil videre forestiller jeg mig noget med en stateHistory klasse som indeholder et array af states (en state skulle være en propertie og en reference til et objekt) og så pusher man en ny state ind i arrayet hver gang der bliver fortaget en ændring.

Og ved klik undo, hopper den tilbage til forrige state og ændre den propertie ved objektet tilbage til hvad den var før.
(Det lyder måske lidt abstrakt, men jeg håber det giver lidt mening)

Nogen der har et rar gode råd, eller nogle kommentarer?

Hilsen David Rasmussen