adding toJSON/fromJSON