add json serialiation