added unionWith, insertWith