recursion permision
merge