pointers instead of ids, no IO in the model, no board copying, general class structure refinements, ArrayList instead of Vector, special moves added