public Move promoteSelf(boolean color) {

		Move m = null;

		for (Entry<Point, ChessSquare> e : potentialMoves.entrySet()) {

			if (e.getKey().getY() == 0 && color) {

				for (Entry<Point, Piece> f : e.getValue().getInbound(color).entrySet()) {
					if (f.getValue().toString().equals("WP")) {
						m = new Move(f.getKey(), e.getKey(), new Queen(color));
						// System.out.println(m.toString());
						return m;
					}

				}
			}

			if (e.getKey().getY() == 7 && !color) {

				for (Entry<Point, Piece> f : e.getValue().getInbound(color).entrySet()) {
					if (f.getValue().toString().equals("BP")) {
						m = new Move(f.getKey(), e.getKey(), new Queen(color));
						// System.out.println(m.toString());
						return m;
					}

				}
			}

		}

		return prioritizedAggressiveMove(color);
	}