adding ability to create instance and more support for abstract types
hiding abstract parsers so that JSON class parsers are used