private static List<List<OSMWay>> getConsecutiveWays(List<OSMWay> ways) {
		List<List<OSMWay>> result = new LinkedList<List<OSMWay>>();
		/* init */
		for(OSMWay w : ways) {
			List<OSMWay> tmp = new LinkedList<OSMWay>();
			tmp.add(w);
			result.add(tmp);
		}
		/* merge */
		for(int i = 0; i < result.size(); i ++) {
			List<OSMWay> l1 = result.get(i);
			for(int j = 0; j < result.size(); j ++) {
				List<OSMWay> l2 = result.get(j);
				if(l1 != l2) {
					List<OSMNode> tmp1 = l1.get(l1.size() - 1).getNodes();
					List<OSMNode> tmp2 = l2.get(l2.size() - 1).getNodes();
					OSMNode n1 = tmp1.get(0);
					OSMNode n2 = tmp2.get(0);
					OSMNode n3 = tmp1.get(tmp1.size() - 1);
					OSMNode n4 = tmp2.get(tmp2.size() - 1);
					if(n1.isSameLocationAs(n4)) {
						l2.addAll(l1);
						result.remove(i);
						i--; j--;
					} else if(n2.isSameLocationAs(n3)) {
						l1.addAll(l2);
						result.remove(j);
						i--; j--;
					}
				}
			}
		}
		return result;
	}