for( double paraval = min; paraval <= max+0.5*step; paraval += step+(step==0) )
     if( ! inParas(paraMap[paraid], paraval) ) paraMap[paraid].push_back( paraval );
+
+  uniqueAllParaIdsAdd(paraid);
 }
 
 bool paraq::inParas( vector<double>& paraVec, double& tofind )
   initJobList();
   return jobList.size(); 
 }
+
+void paraq::uniqueAllParaIdsAdd(const string& paraid) {
+  for (vector<string>::iterator allparait = allParaIds.begin(); allparait != allParaIds.end(); ++allparait)
+    if ( *allparait == paraid )
+      return;
+
+  allParaIds.push_back(paraid);
+}
 
   double& operator[] (string paraid);
   void addRange(const string& paraid, double range[3]) { addRange(paraid, range[0], range[1], range[2]); }
   void addRange(const string& paraid, char *range);
-  void setDefault(const string& paraid, double value) { defaultPara[paraid] = value; }
+  void setDefault(const string& paraid, double value) { defaultPara[paraid] = value; uniqueAllParaIdsAdd(paraid); }
   int getTotalJobs();
   string rangeString();
+  //map<string,double>* getAllParas() {};
 
  private:
   int nprocs, rank;
   bool inParas(vector<double>& paraVec, double& tofind);
   double masterdefault;
   bool jobListInitialized;
+  vector<string> allParaIds;
+  void uniqueAllParaIdsAdd(const string& paraid);
 };
 
 #endif