implement should be to_json