add typical/unionfind