Switch to use json object instead of string
Fall back on data error and keep track of data change