 
     /// Executes a move without checking the legality of the move.
     private func _execute(_ move: Move) throws {
-        try _execute(move, promotion: { Piece(queen: playerTurn) })
+        try _execute(move, promotion: { ._queen })
     }
 
     #if swift(>=3)

    /// Executes `move`, updating the state for `self`.
    ///
    /// - parameter move: The move to be executed.
    /// - parameter promotion: A closure returning a promotion piece if a pawn promotion occurs.
    ///
    /// - throws: `ExecutionError` if `move` is illegal or if `promotion` is invalid.
    public func execute(move move: Move, @noescape promotion: () -> Piece) throws {
        guard isLegal(move: move) else {
            throw ExecutionError.IllegalMove(move, playerTurn, board)
        }

        if piece.kind.isPawn {
            if move.end.rank == Rank(endFor: playerTurn) {
                let promotion = promotion()
                guard promotion.canPromote() else {
                    throw ExecutionError.InvalidPromotion(promotion)
                }
                endPiece = Piece(kind: promotion, color: playerTurn)
            } else if move.end == enPassantTarget {
                capture = Piece(pawn: playerTurn.inverse())
                captureSquare = Square(file: move.end.file, rank: move.start.rank)
