Great job guys! Looks like its pretty similar to my setup, except you guys used hashes instead of arrays at some poins.  Less work for you on Monday!