Added state generator, valid move generator and move validator.