add ToJSONString method