public void paint(GC gc, int width, int height) {
	Device device = gc.getDevice();
	
	if (image == null) {
		image = example.loadImage(device, "maze.bmp");
	}
	// draw maze
	Rectangle bounds = image.getBounds();
	int x = (width - bounds.width) / 2;
	int y = (height - bounds.height) / 2;
	gc.drawImage(image, x, y);
	
	// draw correct oval
	gc.setBackground(device.getSystemColor(SWT.COLOR_RED));
	gc.fillOval(x + xcoord, y + ycoord, 16, 16);
	gc.drawOval(x + xcoord, y + ycoord, 15, 15);
	
	// draw wrong oval 1
	gc.setBackground(device.getSystemColor(SWT.COLOR_BLUE));
	gc.fillOval(x + xcoord2, y + ycoord2, 16, 16);
	gc.drawOval(x + xcoord2, y + ycoord2, 15, 15);
	
	// draw wrong oval 2
	gc.setBackground(device.getSystemColor(SWT.COLOR_GREEN));
	gc.fillOval(x + xcoord3, y + ycoord3, 16, 16);
	gc.drawOval(x + xcoord3, y + ycoord3, 15, 15);

	if (isDone2) {
		Image helpImg = example.loadImage(device, "help.gif");
		gc.drawImage(helpImg, x + xcoord2 + 16, y + ycoord2 - 16);
		helpImg.dispose();
	}

	if (isDone3) {
		Image helpImg = example.loadImage(device, "help.gif");
		gc.drawImage(helpImg, x + xcoord3 + 16, y + ycoord3 - 16);
		helpImg.dispose();
	}
}