Darn, I forgot to do commits along the way.  Here you go.

There's a Coffeescript version in the bonus files folder, along with my Python extension for using dot-notation with dicts.