This was fun to write; in fact, other than minor edits I wrote it in a single two hour sitting with my laptop by the pool :)

http://msdn.microsoft.com/en-us/magazine/dd727503.aspx