public BufferedImage getImage() throws IOException, IllegalArgumentException {
		BufferedImage leftTool = null, rightTool = null;
		//Note that some of this code currently shows up as dead, 
		//but is necessary if reducing ABILITIES_PER_UNIT is to be possible.
		if (abilities.size() > 1) {
			leftTool = ImageLoader.getImage(abilities.get(1).getImagePath());
		}
		if (abilities.size() > 2) {
			rightTool = Util.flipImageHorizontally(ImageLoader.getImage(abilities.get(2).getImagePath()));
		} else {
			rightTool = ImageLoader.getImage(Ability.ATTACK.getImagePath());
		}
        
        BufferedImage torsoImage = ImageLoader.getImage(torsoImagePath);
        
        BufferedImage image = new BufferedImage(Tile.WIDTH - 2*Tile.PADDING, Tile.HEIGHT - 2*Tile.PADDING,
				BufferedImage.TYPE_INT_ARGB);
        Graphics2D imageDrawingGraphics = image.createGraphics();
        //Use a new image's graphics object to draw the partial images on it.
        
        int torsoPositionX = image.getWidth()/2 - torsoImage.getWidth()/2;
        int torsoPositionY = image.getHeight()/2 - torsoImage.getHeight()/2;
        
        imageDrawingGraphics.drawImage(torsoImage, torsoPositionX, torsoPositionY, null);
        if (leftTool != null) {
        	imageDrawingGraphics.drawImage(leftTool, torsoPositionX - leftTool.getWidth(), image.getHeight()/2 - leftTool.getHeight()/2, null);
        }
        imageDrawingGraphics.drawImage(rightTool, torsoPositionX + torsoImage.getWidth(), image.getHeight()/2 - rightTool.getHeight()/2, null);
        return image;
	}