@Override
	public MoveResult makeMove(HantoPieceType pieceType, HantoCoordinate from,
			HantoCoordinate to) throws HantoException {

		MoveResult result;
		HantoPlayerColor color;
		
		// use copy constructor on given HantoCoordinates
		PieceCoordinate newFrom = from == null? null : new PieceCoordinate(from);
		PieceCoordinate newTo = to == null? null : new PieceCoordinate(to);
		
		validateMove(pieceType, newFrom, newTo);
						
		if (turnCount % 2 ==  0) { // if the turn count is even - blue should go
			color = HantoPlayerColor.BLUE;
		}
		else { // turn count is odd - red should go
			color = HantoPlayerColor.RED;
		}
		
		Butterfly butterfly = new Butterfly(color);
		board.addPiece(newTo, butterfly);

		turnCount++;
		
		if (turnCount == 2) { // Alpha Hanto ends after turn 2
			result = MoveResult.DRAW;
		}
		else {
			result = MoveResult.OK;
		}
		
		return result;
	}