improve toJSON support on observable