json ctor