remember to return root hash