added UnsupportedOperationException and a set type. Need more types and more testing.
Discovered that type resolution doesn't work as expected. Need to fix and refactor (it's a mess currently).
This works, but is messy as heck and needs a major retesting of everything