void nextConfig();
     char *confMem;
     virtual void _newParas()=0;
+    virtual void _resetConfig()=0;
     int nequi, nskip;
   private:
     virtual void _makeSweep()=0;
     string outdir;
     int idonly;
     int showjobnum;
+    string startconfig;
   } comargs;
 
   struct comoption {
   vector<obs*> observables;
   sim* Sim;
   void mainLoop();
-  string headMaster();
+  string headMaster( bool hashedrange=false );
   void addPara(const string& paraid, const double& paraDefault);
   void addComOption(const char* name, int has_arg, int *flag, int val, const char* optdesc, const char* argdesc);
   vector< pair<int,char*> > parsedSpecOps;
   string programid;
   int nextParas();
   comoption* getOptionByVal(int val);
+  static void readCacheArgs(const string& arg, string& cachedir, int& cachemode);
+  unsigned long hash(const string& str);
 };
 
 #endif