extracted a common JsonObject class which implements the bulk of the functionality required by Named and UnNamed json objects, and used as a delegate to implement both