public Grid executeMove(Move move) {
		HashMap<Character, Vehicle> newVehicles = new HashMap<Character, Vehicle>(vehicles);
		ArrayList<Grid> newPreviousGrids = new ArrayList<Grid>(previousGrids);
		newPreviousGrids.add(this);
		Vehicle v = newVehicles.get(move.getVehicle().identifier);
		Coordinate modifiedPosition = new Coordinate(v.getPosition().x,v.getPosition().y);
		if(v.horizontal){
			modifiedPosition.x+=move.steps;
		}else{
			modifiedPosition.y+=move.steps;
		}
		if(v.length==2){
			Car c = new Car(v.horizontal, modifiedPosition, v.identifier);
			newVehicles.put(c.identifier, c);
		} else {
			Truck t = new Truck(v.horizontal, modifiedPosition, v.identifier);
			newVehicles.put(t.identifier, t);
		}
		
	
		return new Grid(newVehicles,gridSize,newPreviousGrids);
	}