private void handleCores() {
		for (ICore c: cores){
			if (c.isCreated()){ //If its created, update it.
				c.tick();
				if (c.isDead()){
					entities.removeAll(c.getParts());
				}
			} else { // Create the core if its not created
				while(!c.isCreated()){	
					// Let the core decide if it can step to next position.
					if(c.step(getIntersectingEntity(new Rectangle(c.getNextPosition().getX()+2, c.getNextPosition().getY()+2, Constants.TILE_SIZE-4, Constants.TILE_SIZE-4)))){
						c.create();
					}else if(c.isCreated()) {
						entities.addAll(c.getParts());
					}
				}
			}
		}
	}