public void draw(Graphics2D g) {
		g.setColor(Color.WHITE);
		g.fillRect(0, 0, width, height);
		g.drawImage(board, 0, 123, null);

		synchronized(model) {
			if (model.done()) {
				if (model.hasWon(model.CROSSES)) { drawMessage(1, g); }
				if (model.hasWon(model.CIRCLES)) { drawMessage(3, g); }
			}
			else {
				drawMessage(model.team() * 2, g);
			}

			for(int x = 0; x < 3; x++) {
				for(int y = 0; y < 3; y++) {
					Actor a = model.actorAt(new Location(model, x, y));
					if (a instanceof Factional) {
						drawCross(x, y, ((Factional)a).team() != model.CROSSES, g);
					}
				}
			}
		}
	}