we try to explore all the possibilities, and try to cut some useless branch in the search tree

