public synchronized void move(Entity e, int x, int y){
		int id = e.id;
		int w = e.width;
		int h = e.height;
		
		for(int cx = 0; cx < w; cx++)
			for(int cy = 0; cy < h; cy++){
				int cxex = cx + (int) e.x;
				int cyey = cy + (int) e.y;
				int cxx = cx + x;
				int cyy = cy + y;
				world[cxex][cyey].remove(id);
				if(world[cxex][cyey].isEmpty())
					world[cxex][cyey] = null;
				if(world[cxx][cyy] == null)
					world[cxx][cyy] = new GridLocation();
				world[cxx][cyy].add(id);
				
				if(canMove(walker, cxex, cyey)) walkable[cxex][cyey] = 1;
				if(canMove(navigator, cxex, cyey)) navigable[cxex][cyey] = 1;
				if(!canMove(walker, cxx, cyy)) walkable[cxx][cyy] = 0;
				if(!canMove(navigator, cxx, cyy)) navigable[cxx][cyy] = 0;
			}
		
	}