Better abstraction between layers of logic. Changed board
representation. Reduced number of iterations for benchmark.