private BufferedImage loadTexture(String location) {
		Image image = null;
		BufferedImage bufferedImage = null;
		URL url = this.getClass().getResource(location);
		if (url == null)
			return null;

		image = Toolkit.getDefaultToolkit().getImage(url);
		if (image != null) {
			tracker.addImage(image, 0);
			try {
				tracker.waitForAll();
			} catch (InterruptedException e) {
				tracker.removeImage(image);
				image = null;
			} finally {

				if (image != null)
					tracker.removeImage(image);

				if (tracker.isErrorAny())
					image = null;

				if (image != null) {
					if (image.getWidth(null) < 0 || image.getHeight(null) < 0)
						image = null;
				}
			}
		}

		if (image != null) {
			bufferedImage = new BufferedImage(image.getWidth(null), image
					.getHeight(null), BufferedImage.TYPE_INT_RGB);
			Graphics2D g = bufferedImage.createGraphics();
			g.drawImage(image, 0, 0, null);
			g.dispose();
		}
		return bufferedImage;
	}