void initEntity(int locationX, int locationY) throws SlickException {
		// spawn at
		curX = locationX;
		curY = locationY;
		nextX = locationX;
		nextY = locationY;
		// Initialize collision ranges
		rec.setCenterX(curX + centerOfSprite);
		rec.setCenterY(curY + centerOfSprite);
		sightRadius.setCenterX(curX + centerOfSprite);
		sightRadius.setCenterY(curY + centerOfSprite);
		followRadius.setCenterX(curX + centerOfSprite);
		followRadius.setCenterY(curY + centerOfSprite);
		
		// set original spawn location
		spawnX = locationX;
		spawnY = locationY;
		
		// create new destination
		// could have this shrunk to region? or give direct co-ordinates, or have if statements based on states?
		idleWonder();

		// sprite image / zombie style | currently 2 dif zombie types
		// big - little should equal this number --^ of zombies to select from.
		int R = (int) ((Math.random() * (3 - 1)) + 1); 
		//Load Sprite
		Image [] movementUp = {new Image("assets/zomb"+R+"_UD1.png"), new Image("assets/zomb"+R+"_UD2.png"),
				new Image("assets/zomb"+R+"_UD3.png"), new Image("assets/zomb"+R+"_UD4.png"), new Image("assets/zomb"+R+"_UD5.png"), 
				new Image("assets/zomb"+R+"_UD6.png"), new Image("assets/zomb"+R+"_UD7.png"), new Image("assets/zomb"+R+"_UD8.png")};
		Image [] movementDown = {new Image("assets/zomb"+R+"_UD1.png"), new Image("assets/zomb"+R+"_UD2.png"),
				new Image("assets/zomb"+R+"_UD3.png"), new Image("assets/zomb"+R+"_UD4.png"), new Image("assets/zomb"+R+"_UD5.png"), 
				new Image("assets/zomb"+R+"_UD6.png"), new Image("assets/zomb"+R+"_UD7.png"), new Image("assets/zomb"+R+"_UD8.png")};
		Image [] movementLeft = {new Image("assets/zomb"+R+"_UD1.png"), new Image("assets/zomb"+R+"_UD2.png"),
				new Image("assets/zomb"+R+"_UD3.png"), new Image("assets/zomb"+R+"_UD4.png"), new Image("assets/zomb"+R+"_UD5.png"), 
				new Image("assets/zomb"+R+"_UD6.png"), new Image("assets/zomb"+R+"_UD7.png"), new Image("assets/zomb"+R+"_UD8.png")};
		Image [] movementRight = {new Image("assets/zomb"+R+"_UD1.png"), new Image("assets/zomb"+R+"_UD2.png"),
				new Image("assets/zomb"+R+"_UD3.png"), new Image("assets/zomb"+R+"_UD4.png"), new Image("assets/zomb"+R+"_UD5.png"), 
				new Image("assets/zomb"+R+"_UD6.png"), new Image("assets/zomb"+R+"_UD7.png"), new Image("assets/zomb"+R+"_UD8.png")};
		// Idle Animations
		Image [] movementIdleU = {new Image("assets/zomb"+R+"_iD1.png")};
		Image [] movementIdleD = {new Image("assets/zomb"+R+"_iD1.png")};
		Image [] movementIdleL = {new Image("assets/zomb"+R+"_iD1.png")};
		Image [] movementIdleR = {new Image("assets/zomb"+R+"_iD1.png")};
		// TODO: / COULD REPLACE THIS SHIT WITH A SIMPLE == eg deathLeft = deathUp.
		// lDeath, uDeath, rDeath, dDeath - 
		Image [] deathUp = {new Image("assets/zomb"+R+"_Death1.png"), new Image("assets/zomb"+R+"_Death2.png"),
				new Image("assets/zomb"+R+"_Death3.png"), new Image("assets/zomb"+R+"_Death4.png"), new Image("assets/zomb"+R+"_Death5.png"), 
				new Image("assets/zomb"+R+"_Death6.png"), new Image("assets/zomb"+R+"_Death7.png"), new Image("assets/zomb"+R+"_Death8.png")};
		Image [] deathDown = {new Image("assets/zomb"+R+"_Death1.png"), new Image("assets/zomb"+R+"_Death2.png"),
				new Image("assets/zomb"+R+"_Death3.png"), new Image("assets/zomb"+R+"_Death4.png"), new Image("assets/zomb"+R+"_Death5.png"), 
				new Image("assets/zomb"+R+"_Death6.png"), new Image("assets/zomb"+R+"_Death7.png"), new Image("assets/zomb"+R+"_Death8.png")};
		Image [] deathLeft = {new Image("assets/zomb"+R+"_Death1.png"), new Image("assets/zomb"+R+"_Death2.png"),
				new Image("assets/zomb"+R+"_Death3.png"), new Image("assets/zomb"+R+"_Death4.png"), new Image("assets/zomb"+R+"_Death5.png"), 
				new Image("assets/zomb"+R+"_Death6.png"), new Image("assets/zomb"+R+"_Death7.png"), new Image("assets/zomb"+R+"_Death8.png")};
		Image [] deathRight = {new Image("assets/zomb"+R+"_Death1.png"), new Image("assets/zomb"+R+"_Death2.png"),
				new Image("assets/zomb"+R+"_Death3.png"), new Image("assets/zomb"+R+"_Death4.png"), new Image("assets/zomb"+R+"_Death5.png"), 
				new Image("assets/zomb"+R+"_Death6.png"), new Image("assets/zomb"+R+"_Death7.png"), new Image("assets/zomb"+R+"_Death8.png")};
		
		// load damage Animations
		Image [] hitBloodSplat1 = {new Image("assets/bloodSplat4.png"), new Image("assets/bloodSplat1.png"),
				new Image("assets/bloodSplat1.png"), new Image("assets/bloodSplat2.png"), new Image("assets/bloodSplat2.png"), 
				new Image("assets/bloodSplat3.png"), new Image("assets/bloodSplat4.png"), new Image("assets/bloodSplat5.png")};
		
		// Rotate each movement image in the Animation
		for (int i = 0; i< movementUp.length; i++) {
			movementDown[i].rotate(180f);
			movementLeft[i].rotate(270f);
			movementRight[i].rotate(90f);
		}
		// rotate each idle image
		for (int i = 0; i< movementIdleU.length; i++) {
			movementIdleD[i].rotate(180f);
			movementIdleL[i].rotate(270f);
			movementIdleR[i].rotate(90f);
		}
		// rotate each death image in the animation
		// deathDown[i].setCenterOfRotation(spriteSize, spriteSize); 
		for (int i = 0; i< deathUp.length; i++) {
			deathDown[i].rotate(180f);
			deathLeft[i].rotate(270f);
			deathRight[i].rotate(90f); 
		}
		
		int [] idleDur 			= {200};
		int [] duration	 		= {200, 200, 200, 200, 200, 200, 200, 200};
		int [] deathDuration	 		= {200, 200, 200, 200, 200, 200, 200, 200};
		int [] damageDuration 	= {200, 50, 50, 50, 50, 50, 50, 200};

		up = new Animation(movementUp, duration, false);
		down = new Animation(movementDown, duration, false);
		left = new Animation(movementLeft, duration, false);
		right = new Animation(movementRight, duration, false); 
		// idle Image
		idleU = new Animation(movementIdleU, idleDur, false);
		idleD = new Animation(movementIdleD, idleDur, false);
		idleL = new Animation(movementIdleL, idleDur, false);
		idleR = new Animation(movementIdleR, idleDur, false);
		// Death animations
		// TODO: Replace with DEATH ANIMATIONS
		uDeath = new Animation(deathUp, deathDuration, false);
		dDeath = new Animation(deathDown, deathDuration, false);
		lDeath = new Animation(deathLeft, deathDuration, false);
		rDeath = new Animation(deathRight, deathDuration, false);
		// Damage Animations
		bloodSplat1 = new Animation(hitBloodSplat1, damageDuration, false);

		// Starting orientation of the sprite.
		R = (int) ((Math.random() * (5 - 1)) + 1); 
		if (R == 1) {
			sprite = idleU;
		}
		if (R == 2) {
			sprite = idleD;
		}
		if (R == 3) {
			sprite = idleL;
		}
		if (R == 4) {
			sprite = idleR;
		}
		
		// maby one for the rec for collisions later
		
		// set the sight radius
		//sightRadius = new Circle(curX, curY, sightRange);
		
		
		// TODO STOP THIS FROM PLAYING IMEDIETLY
		spriteDamage = bloodSplat1;
		//spriteDamage.stopAt(8);
		spriteDamage.setCurrentFrame(7);
		//spriteDamage.stopAt(7);
		
		// set alive bool to true
		dead = false;
	}