public UnitController(final GameCore mCore, final String unitName, int xpos, int ypos, final MapState mMap ) throws SlickException
		{
			Log.info("Constructing Map Control for unit " + unitName);
			this.mMap = mMap;
			this.x = xpos;
			this.y = ypos;
			this.unitName = unitName;
			this.mCore = mCore;
			
			Properties mConfig = mCore.getConfiguration();
			Properties mTheme = ConfigReader.readConfig(themeDir + mConfig.getProperty("theme"));
			Properties unitConfig = ConfigReader.readConfig("./res/" + unitName + ".cfg");
			
			unitImage = new Image(unitConfig.getProperty("icon"));
			final int unitWidth = unitImage.getWidth();
			
			plus = new Image(themeDir + mTheme.getProperty("folder") + "/" + mTheme.getProperty("plus"));
			minus = new Image(themeDir + mTheme.getProperty("folder") + "/" + mTheme.getProperty("minus"));
			
			sendUnit = (new MouseOverArea(mCore.getGame().getContainer(), plus, xpos + unitWidth + padding, ypos)
			{
				public void mouseClicked(int button, int x, int y,
						int clickCount) 
				{
					if (x >= this.getX()
							&& x < this.getX() + this.getWidth()
							&& y >= this.getY()
							&& y <= this.getY() + this.getHeight()) 
					{
						mCore.sendMinion(unitName, mMap.getSelected().getPlace());
						String sendName = "pending-send-to-"+mMap.getSelected().getPlace().getName()+"-for-" + unitName;
						mCore.setValue(sendName, mCore.getValue(sendName)+1);
					}
				}
			});
			
			callUnit = (new MouseOverArea(mCore.getGame().getContainer(), minus, xpos + unitWidth + padding, ypos + 40)
			{
				public void mouseClicked(int button, int x, int y,
						int clickCount) 
				{
					if (x >= this.getX()
							&& x < this.getX() + this.getWidth()
							&& y >= this.getY()
							&& y <= this.getY() + this.getHeight()) 
					{
						mCore.callMinion(unitName, mMap.getSelected().getPlace());
					}
				}
			});
		}