add history. add test for empty json path .set() self