public ArrayList<Runner> moveRunners(long time,Board board)
	{
		
		ArrayList<Runner> r = new ArrayList<Runner>();
		Runner current;
		Map m;
		
		//Loop through each team's list of runners
		for(int i=0;i<Runners.size();i++)
		{
			//Loop through each runner for that team
			for(int j=0;j<Runners.get(i).size();j++)
			{
				current=Runners.get(i).get(j);
				//If a runner can move, move him
				if(current.canMove(time))
					//If movement results in a Runner reaching the checkpoint, reroute his checkpoint
					if(current.move(time,board))
					{
						//We'll have to make this look nicer
						//If there's no checkpoint past the one the runner has gotten to, it has gotten to an endpoint.
						//So remove it from the RunnerManager list and add it to the list of runners to be returned.
						if(null==((CheckPoint)board.getSquare(current.getPosX(),current.getPosY())).getNextCheckPoint(current.getTeam()))
						{
							
							r.add(current);
							Runners.get(i).remove(j);
							continue;
						}
						
						//If it's not the end, go find the next waypoint.
						m = ( (CheckPoint)board.getSquare(current.getPosX(),current.getPosY())).getNextCheckPoint(current.getTeam()).getMap();
						current.setCheckPointMap( m );
					}
			}
		}	
		return r;
	}