Abstract. In this paper, we present a major improvement in the search procedures in constraint programming. First, we integrate various search procedures from AI and OR. Second, we parallelize the search on shared-memory computers. Third, we add an object-oriented extensible control language to implement complex complete and incomplete search procedures. The result is a powerful set of tools which offers both brute force search using simple search procedures and parallelism, and finely tuned search procedures using that expressive control language. With this, we were able both to solve difficult and open problems using complete search procedures, and to quickly produce good results using incomplete search procedures.