Fogot to fork before making a bunch of commits...all of which are reflected in this repo in just one commit; not worth
the trouble of figuring out how to merge the committ histories...
Performance improvements / notes.

o Replaced funky dictionary manipulation with a list comprehension.

o TODO: Performance of the O(n^3) exists_anywhere() method needs to be replaced
  with hash lookups.