Update to start working with both arrays and dictionaries

Alright! Our first pull request!

Here's the deal - if you add an exception breakpoint you will see where it dies. Should be fairly straightforward based on what we discussed. Let's talk in the morning. And let me know if you think there's a better way to write all this (aka refactoring.) Sweeeeeet.