public synchronized boolean sameShapes(List<String> s){

		if (this.shapes == null || s == null)
			return false;

		if (this.shapes.size() != s.size())
			return false; 

		List<String> l1 = new ArrayList<String>();
		List<String> l2 = new ArrayList<String>();
		for (String l : this.shapes)
			l1.add(l);
		Collections.sort(l1);
		for (String l : s)
			l2.add(l);
		Collections.sort(l2);

		return l1.equals(l2);
	}