Partial refactoring progress on today's workshop.  Got a little bit lost for a while on an array bounds bug, so we're nowhere near "clean code" on this one yet.