public void update()
	{
		if (followList.size() == 0) return;
		
// FINDING THE BOUNDING RECTANGLE {
		Rectangle bound = new Rectangle(Integer.MAX_VALUE, Integer.MAX_VALUE, 0, 0);

		// Finding the minimum position
		for (GameObject toFollow : followList) {
			if (toFollow.pos.x < bound.x) {
				bound.x = (int) (toFollow.pos.x - 5);
			}
			if (toFollow.pos.y < bound.y) {
				bound.y = (int) (toFollow.pos.y - 5);
			}
			
		}
		
		// Finding the maximum size
		for (GameObject toFollow : followList) {
			int relativeX = (int) ((toFollow.pos.x + 5) - bound.x); // relative to bound's x
			int relativeY = (int) ((toFollow.pos.y + 5) - bound.y); // ...

			if (relativeX > bound.width) {
				bound.width = relativeX;
			}
			if (relativeY > bound.height) {
				bound.height = relativeY;
			}
		}
//	}
		// Target position:
		Vector2d targetPosition = new Vector2d(bound.getCenterX(), bound.getCenterY());
		
		position.x += (targetPosition.x - position.x) / quotient;
		position.x += followList.get(0).vel.x;
		if (followList.get(0).vel.x > 1) {
			position.x += 30;
		} else if (followList.get(0).vel.x < - 1) {
			position.x -= 30;
		} else {
			
		}
		//
		position.y += (targetPosition.y - position.y) / quotient;

		//Target zoom!!! To find this: what zoom do we need to make the bound rectangle fit screen? ( + a little margin yay!!! :D)
		double targetZoom;
		
		/*// Apply margins
		bound.width += cameraMargin * 2;
		bound.height += cameraMargin * 2;
		
		if ((double) bound.width / (double) Game.WIDTH > (double) bound.height / (double) Game.HEIGHT) {
			targetZoom = 1/ ((double) bound.width / (double) Game.WIDTH);
		} else {
			targetZoom = 1/ ((double) bound.height / (double) Game.HEIGHT);
		}*/
		/*if (followList.size() > 0) {
			targetZoom = (200 / 5);
			zoom += (targetZoom - zoom) / (quotient * 2);
		}*/

	}