use typeclasses instead of a giant deserializer
specs for primitives and collection types pass again
re-enables failing specs