refactor POJO marshaling/unmarshaling to cleanly handle wrapper json nodes