adding a constructor and removing primative type constructs, they are now just treated as primitives on the @json hash