JSON conversion now happens recursively