if (layer == 0) return;
//duplicate the previous layers
Hashtable maxminus = (Hashtable) maxResources.get(layer-1);
Hashtable minminus = (Hashtable) minResources.get(layer-1);
Map newmax = (Hashtable) maxminus.clone();
Map newmin = (Hashtable) minminus.clone();
maxResources.add(layer, newmax);
minResources.add(layer, newmin);
//loop throught the current resource operators and if they increase/decrease update the values on the new layer
Iterator roit = resOps.iterator();