constraint class
node class
search tree
variable class
main class