switched to json/pure to avoid weird bug when to_json is overridden