add custom json support