better description for from_json