fixed a bug where evaluation was not propogated back to root node
increased performance by not copying each move, but instead using reference to moves that are already generated