separated chooseLeaf