diff --git a/README b/README
index 9d37bbee031f88bf0f39a6708acb16d40d5a09f0..a274b22fbeaced392405c6e09e7403b2c5ac5921 100644
--- a/README
+++ b/README
@@ -2,45 +2,35 @@ CWSeaOptiFol - Continuous Waves Search Optimization and Follow-up
 
 Synopsis:
 
-        A collection of programs for optimization and follow-up of 
-        semicoherent searches for continuous gravitational waves.
+	A collection of programs for follow-up of semicoherent searches for 
+	continuous gravitational waves. The search optimization part has been 
+	moved to attic in early 2019.
 
 	CWSeaOptiFol has been forked from a branch of LALAPPS and 
-        contain pieces of code developed inside LALAPPS. Thus you 
-        may find code and documentaion written by various LIGO 
-        collaborators.
-
+	contain pieces of code developed inside LALAPPS. Thus you 
+	may find code and documentaion written by various LIGO 
+	collaborators.
 
 Notice:
 
-        We request that any academic report, publication, or other
-        academic disclosure of results derived from the use of this
-        software acknowledge the use of the software by an appropriate
-        acknowledgment or citation.
-
+	We request that any academic report, publication, or other
+	academic disclosure of results derived from the use of this
+	software acknowledge the use of the software by an appropriate
+	acknowledgment or citation.
 
 Installation:
 
-        CWSeaOptiFol requires various pieces of software which can be installed
-        by following these directions:
-        http://www.lsc-group.phys.uwm.edu/daswg/docs/howto/lscsoft-install.html
-
-        Binary versions of these software packages, can be obtained from:
-        http://www.lsc-group.phys.uwm.edu/daswg/download/repositories.html
-
-        Follow these directions to build LAL from source:
-        http://www.lsc-group.phys.uwm.edu/daswg/docs/howto/lal-install.html
-
-	NOMAD is available from
-	https://www.gerad.ca/nomad/
-	or for convenience (using autotools)
-	https://gitlab.aei.uni-hannover.de/ms-public/nomad
-
-
-Other resources:
+	CWSeaOptiFol requires among others
+	
+		LALSuite - https://git.ligo.org/lscsoft/lalsuite
+		NOMAD - https://www.gerad.ca/nomad/ 
 
-        Binary releases of LALApps for various platforms:
-        http://www.lsc-group.phys.uwm.edu/daswg/download/repositories.html
+		For convenience you can use an autotooled version of NOMAD found under
+			https://github.com/cvscpp/sgtelib
+			https://github.com/cvscpp/nomad
 
-        Please see the LALApps webpage for more information:
-        http://www.lsc-group.phys.uwm.edu/daswg/projects/lalapps.html
+	Typical installation steps
+	
+		1. Install and source LALSuite (minimal required lal and lalpulsar)
+		2. Install sgtelib and nomad (preferably the autotooled version)
+		3. Configure and install CWSeaOptiFol
diff --git a/configure.ac b/configure.ac
index 70a329d886e79ff648b82344cf32aed084c787c6..b1fc7b35a72d0bffa90da68a4232f4d3e92ced3b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@
 AC_PREREQ([2.63])
-AC_INIT([cwseaoptifol],[6.17.0.1],[miroslav.shaltev@aei.mpg.de])
+AC_INIT([cwseaoptifol],[6.22.0.1],[miroslav.shaltev@shaltev.de])
 AC_CONFIG_HEADERS([src/config.h])
 AC_CONFIG_SRCDIR([src/lalapps/lalapps.c])
 AC_CONFIG_AUX_DIR([misc])
@@ -14,8 +14,7 @@ AC_CONFIG_FILES([\
   src/GoodiesAndClones/Makefile \
   src/FollowUp/Gsl/Makefile \
   src/FollowUp/Nomad/Makefile \
-  src/FollowUp/AfterMath/Makefile \
-  src/SearchOptimization/Makefile
+  src/FollowUp/AfterMath/Makefile
 ])
 AM_INIT_AUTOMAKE([1.11 foreign color-tests parallel-tests])
 AH_TOP([
@@ -26,8 +25,8 @@ AH_BOTTOM([
 ])
 
 # version requirements
-MIN_LAL_VERSION="6.17.0"
-MIN_LALPULSAR_VERSION="1.15.0"
+MIN_LAL_VERSION="6.19.0"
+MIN_LALPULSAR_VERSION="1.17.0"
 AC_SUBST([MIN_LAL_VERSION])
 AC_SUBST([MIN_LALPULSAR_VERSION])
 
diff --git a/cwseaoptifol.spec b/cwseaoptifol.spec
index b0f1ab5579d73863cb42a9283bb33ff956e1982f..e66f4f869ca66e25c568f955e8d470b21ed1ede4 100644
--- a/cwseaoptifol.spec
+++ b/cwseaoptifol.spec
@@ -5,7 +5,7 @@
 %define _pkgpyexecdir %{_libdir}/python2.6/site-packages/cwseaoptifol
 
 Name: cwseaoptifol
-Version: 6.17.0.1
+Version: 6.22.0.1
 Release: 1
 Summary: LSC Algorithm Library Applications
 License: GPL
diff --git a/src/FollowUp/AfterMath/AfterMath.cpp b/src/FollowUp/AfterMath/AfterMath.cpp
index 86f993f6493375c06c43a3959d605490eda87eef..ae66f8c68c6360795eed576fc57efb53e01e2794 100644
--- a/src/FollowUp/AfterMath/AfterMath.cpp
+++ b/src/FollowUp/AfterMath/AfterMath.cpp
@@ -106,7 +106,6 @@ INT4 AFTERMath::XLALInitUserVars ( int argc, char *argv[] )
     }
     
     /* register user input variables */
-	XLALRegisterUvarMember( version,BOOLEAN,     'V', SPECIAL,  "Output version information.");
 	XLALRegisterUvarMember( fnamein, STRING,  0, OPTIONAL, "Input filename.");	
 	XLALRegisterUvarMember( fnameout, STRING,  0, OPTIONAL, "Output filename.");
 	XLALRegisterUvarMember( ephemEarth, STRING,    0,  OPTIONAL, "Location of Earth ephemeris file.");
@@ -119,7 +118,7 @@ INT4 AFTERMath::XLALInitUserVars ( int argc, char *argv[] )
 	XLALRegisterUvarMember( distanceLimit, REAL8,     0,  OPTIONAL, "Distance limit.");
   /* read cmdline & cfgfile  */
   BOOLEAN should_exit = 0;
-  XLAL_CHECK( XLALUserVarReadAllInput( &should_exit, argc, argv ) == XLAL_SUCCESS, XLAL_EFUNC );
+  XLAL_CHECK( XLALUserVarReadAllInput( &should_exit, argc, argv, lalAppsVCSInfoList ) == XLAL_SUCCESS, XLAL_EFUNC );
   if ( should_exit ) {
     exit (1);
   }
diff --git a/src/FollowUp/Gsl/FCGridSearch.cpp b/src/FollowUp/Gsl/FCGridSearch.cpp
index 80eb5426025a907bdb5fbc1ed7252d6546b53574..01ba5afcbc9101cd2be7d3901958a309a9ce4e66 100644
--- a/src/FollowUp/Gsl/FCGridSearch.cpp
+++ b/src/FollowUp/Gsl/FCGridSearch.cpp
@@ -1991,7 +1991,6 @@ INT4 FCGridSearch::read_CL(int argc, char *argv[]) {
     strcpy(uvar_ephemS, SUNEPHEMERIS);
 
     /* register user input variables */
-	XLAL_CHECK_MAIN( XLALRegisterNamedUvar( &uvar_version,             "version",           BOOLEAN, 'V', SPECIAL,    "Output version information") == XLAL_SUCCESS, XLAL_EFUNC);
 	XLAL_CHECK_MAIN( XLALRegisterNamedUvar( &uvar_SNRthType,           "SNRthType",         INT4, 0, OPTIONAL,  "Type of SNRth computation: 0 - constant, 1 - numerical, 2 - Gaussian, 3 - WSG Eq. 38 PRD85 084010, 4 - KW Eq. 3.31 PRD85 042003") == XLAL_SUCCESS, XLAL_EFUNC);
     XLAL_CHECK_MAIN( XLALRegisterNamedUvar(   &uvar_ConstSNRth, "ConstSNRth", REAL8,        0,  OPTIONAL,  "SNRth value used with SNRthType = 0") == XLAL_SUCCESS, XLAL_EFUNC);
     XLAL_CHECK_MAIN( XLALRegisterNamedUvar(   &uvar_pFA, "pFA",             REAL8,   0,  OPTIONAL,  "False-alarm probability") == XLAL_SUCCESS, XLAL_EFUNC);
@@ -2059,10 +2058,10 @@ INT4 FCGridSearch::read_CL(int argc, char *argv[]) {
 
   /* read cmdline & cfgfile  */
   BOOLEAN should_exit = 0;
-  XLAL_CHECK( XLALUserVarReadAllInput( &should_exit, argc, argv ) == XLAL_SUCCESS, XLAL_EFUNC );
+  XLAL_CHECK( XLALUserVarReadAllInput( &should_exit, argc, argv, lalAppsVCSInfoList ) == XLAL_SUCCESS, XLAL_EFUNC );
   if ( should_exit ) {
     exit (1);
-  }	
+  }
 
     /* set log level */
     // LogSetLevel((LogLevel_t)uvar_loglevel);
diff --git a/src/FollowUp/Gsl/FStatGsl.cpp b/src/FollowUp/Gsl/FStatGsl.cpp
index c6709152915dac6fd995b2bfe1e4197ffad611d7..8b52f15ac5ca7f23d331ad38fbd26fbd6ab161c6 100644
--- a/src/FollowUp/Gsl/FStatGsl.cpp
+++ b/src/FollowUp/Gsl/FStatGsl.cpp
@@ -286,7 +286,6 @@ REAL8 fc_ds_eval_x(const gsl_vector *v, void *param) {
         MFCSearch->trials_add();
         p.F = fx;
         MFCSearch->wkvector.push_back(p);
-	
 }
 
 
@@ -960,7 +959,7 @@ INT4 FCSearch::read_CL(int argc, char *argv[]) {
 
     XLAL_CHECK_MAIN( XLALRegisterNamedUvar(   &uvar_tStack, "tStack",REAL8,      0, OPTIONAL, "Duration of segments (sec)") == XLAL_SUCCESS, XLAL_EFUNC);
     XLAL_CHECK_MAIN( XLALRegisterNamedUvar( &uvar_segmentList, "segmentList",STRING,  0, OPTIONAL, "File containing a segment list used to compute Fisher ellipsoid: lines of form <startGPS endGPS duration[h] NumSFTs>") == XLAL_SUCCESS, XLAL_EFUNC);
-    XLAL_CHECK_MAIN( XLALRegisterNamedUvar(  &uvar_TargetedSearch, "TargetedSearch",BOOLEAN, 0, SPECIAL,  "Do targeted search") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterNamedUvar(  &uvar_TargetedSearch, "TargetedSearch",BOOLEAN, 0, OPTIONAL,  "Do targeted search") == XLAL_SUCCESS, XLAL_EFUNC);
     XLAL_CHECK_MAIN( XLALRegisterNamedUvar(   &uvar_StartPointFreq, "StartPointFreq",REAL8,       0,  OPTIONAL, "Freq") == XLAL_SUCCESS, XLAL_EFUNC);
     XLAL_CHECK_MAIN( XLALRegisterNamedUvar(   &uvar_StartPointAlpha, "StartPointAlpha",REAL8,       0,  OPTIONAL, "RA") == XLAL_SUCCESS, XLAL_EFUNC);
     XLAL_CHECK_MAIN( XLALRegisterNamedUvar(   &uvar_StartPointDelta, "StartPointDelta",REAL8,       0,  OPTIONAL, "Dec") == XLAL_SUCCESS, XLAL_EFUNC);
@@ -999,7 +998,6 @@ INT4 FCSearch::read_CL(int argc, char *argv[]) {
     XLAL_CHECK_MAIN( XLALRegisterNamedUvar( &uvar_RandomSearchRadius, "RandomSearchRadius", INT4,  0, OPTIONAL, "Radius in percent of the search band per direction to randomize around the starting point") == XLAL_SUCCESS, XLAL_EFUNC);
     XLAL_CHECK_MAIN( XLALRegisterNamedUvar( &uvar_ResamplingSearch, "ResamplingSearch", BOOLEAN,  0, OPTIONAL, "Use resampling for searc, i.e. search only in alpha and delta") == XLAL_SUCCESS, XLAL_EFUNC);
     XLAL_CHECK_MAIN( XLALRegisterNamedUvar( &uvar_FixedSpindownSearch, "FixedSpindownSearch",BOOLEAN,   0, OPTIONAL, "Constant spindown search") == XLAL_SUCCESS, XLAL_EFUNC);
-    XLAL_CHECK_MAIN( XLALRegisterNamedUvar( &uvar_version, "version",BOOLEAN,     'V', SPECIAL,  "Output version information") == XLAL_SUCCESS, XLAL_EFUNC);
     XLAL_CHECK_MAIN( XLALRegisterNamedUvar( &uvar_BreakASAP, "BreakASAP",BOOLEAN, 0, OPTIONAL, "Break the search if we are within the expectation") == XLAL_SUCCESS, XLAL_EFUNC);
     XLAL_CHECK_MAIN( XLALRegisterNamedUvar( &uvar_NoiseLimit, "NoiseLimit",REAL8, 0, OPTIONAL, "Minimal acceptable fully-coherent 2F") == XLAL_SUCCESS, XLAL_EFUNC);
     XLAL_CHECK_MAIN( XLALRegisterNamedUvar( &uvar_AcceptDev, "AcceptDev",REAL8,   0, OPTIONAL, "Number of standard deviations from the expectation to break the search if BreakASAP is used") == XLAL_SUCCESS, XLAL_EFUNC);
@@ -1026,11 +1024,11 @@ INT4 FCSearch::read_CL(int argc, char *argv[]) {
     XLAL_CHECK_MAIN( XLALRegisterNamedUvar( &uvar_Signalf3dot, "Signalf3dot",REAL8, 0, OPTIONAL, "Signal f3dot") == XLAL_SUCCESS, XLAL_EFUNC);
     XLAL_CHECK_MAIN( XLALRegisterNamedUvar( &uvar_ComputeStartingPointStatistics, "ComputeStartingPointStatistics",BOOLEAN, 0, OPTIONAL, "Compute the semi-coherent and fully-coherent 2F value of the starting point") == XLAL_SUCCESS, XLAL_EFUNC);
     XLAL_CHECK_MAIN( XLALRegisterNamedUvar( &uvar_ComputeDTS, "ComputeDTS",BOOLEAN, 0, OPTIONAL, "Compute the distance to the signal in FStatSearchType=2 mode, using the Fisher matrix") == XLAL_SUCCESS, XLAL_EFUNC);
-	XLAL_CHECK_MAIN( XLALRegisterNamedUvar( &uvar_FstatMethod, "FstatMethod",STRING,  0, OPTIONAL, XLALFstatMethodHelpString()) == XLAL_SUCCESS, XLAL_EFUNC);
-
+	XLAL_CHECK_MAIN( XLALRegisterNamedUvar( &uvar_FstatMethod, "FstatMethod", INT4, 0, OPTIONAL,  "F-statistic method to use" ) == XLAL_SUCCESS, XLAL_EFUNC);
+	
   /* read cmdline & cfgfile  */
   BOOLEAN should_exit = 0;
-  XLAL_CHECK( XLALUserVarReadAllInput( &should_exit, argc, argv ) == XLAL_SUCCESS, XLAL_EFUNC );
+  XLAL_CHECK( XLALUserVarReadAllInput( &should_exit, argc, argv, lalAppsVCSInfoList ) == XLAL_SUCCESS, XLAL_EFUNC );
   if ( should_exit ) {
     exit (1);
   }
@@ -1146,10 +1144,7 @@ INT4 FCSearch::read_CL(int argc, char *argv[]) {
         usefulParams.refTime = -1;
     }
 
-	if ( XLALParseFstatMethodString ( &usefulParams.Fmethod, uvar_FstatMethod ) != XLAL_SUCCESS ) {
-		XLALPrintError ("XLALParseFstatMethodString() failed.\n");
-		return( FSTATGSL_EBAD );
-	}
+    usefulParams.Fmethod = uvar_FstatMethod;
 	
     StartStepAlpha(uvar_StartStepAlpha);
     StartStepDelta(uvar_StartStepDelta);
@@ -1252,7 +1247,6 @@ INT4 FCSearch::read_CL(int argc, char *argv[]) {
         }
     }
     LogPrintf(LOG_NORMAL,"Search %d dimensions\n",ndim);
-
 }
 
 
@@ -1396,7 +1390,7 @@ FCSearch::FCSearch(int argc, char *argv[]) {
     uvar_Cost = 1;
     uvar_ConTol = 1e-6;
 
-	uvar_FstatMethod = XLALStringDuplicate("DemodBest");
+	uvar_FstatMethod = FMETHOD_DEMOD_BEST;
 	
 //     for (INT4 i = 0; i < 6; i++) extends[i] = 0;
 
diff --git a/src/FollowUp/Gsl/FStatGsl.h b/src/FollowUp/Gsl/FStatGsl.h
index 84ea221ee953eae06643486a32afcedddee98246..5c83eb718ba75e840b7436422830a53d60cbbe90 100644
--- a/src/FollowUp/Gsl/FStatGsl.h
+++ b/src/FollowUp/Gsl/FStatGsl.h
@@ -212,7 +212,7 @@ extern "C" {
         INT4 uvar_Cost;
         REAL8 uvar_ConTol;
 		
-		CHAR *uvar_FstatMethod;
+		int uvar_FstatMethod;
 		
 
     };
diff --git a/src/FollowUp/Gsl/libFStatGsl.cpp b/src/FollowUp/Gsl/libFStatGsl.cpp
index ffaf427858554b44ea711031fa963045fc1fc39b..5abc4a9777251ea5753c34e63acffc3cc43e2328 100644
--- a/src/FollowUp/Gsl/libFStatGsl.cpp
+++ b/src/FollowUp/Gsl/libFStatGsl.cpp
@@ -745,7 +745,7 @@ void FStatGsl::SetUpSFTs( LALStatus *status,			/**< pointer to LALStatus structu
     optionalArgs.SSBprec = in->SSBprec;
     optionalArgs.Dterms = in->Dterms;
     optionalArgs.runningMedianWindow = in->blocksRngMed;
-    optionalArgs.FstatMethod = in->Fmethod;
+    optionalArgs.FstatMethod = (FstatMethodType)in->Fmethod;
 
     for (k = 0; k < in->nStacks; k++) {
 
diff --git a/src/FollowUp/Gsl/libFStatGsl.h b/src/FollowUp/Gsl/libFStatGsl.h
index 4f0cace6a7f0923a5ceaa276fd3733d1c68d343b..266853a3ef5135a343083e1f5ad0a8cd3720f2e4 100644
--- a/src/FollowUp/Gsl/libFStatGsl.h
+++ b/src/FollowUp/Gsl/libFStatGsl.h
@@ -64,7 +64,7 @@
 #include <lal/LALInitBarycenter.h>
 #include <lal/Velocity.h>
 #include <lal/ExtrapolatePulsarSpins.h>
-#include <lal/EstimateAmplitudeParams.h>
+#include <lal/FstatisticTools.h>
 #include <lal/Date.h>
 #include <lal/LALHough.h>
 #include <lal/NormalizeSFTRngMed.h>
@@ -241,7 +241,7 @@ extern "C" {
         UINT4 extraBinsFstat;            /**< Extra bins required for Fstat calculation */
         SSBprecision SSBprec;            /**< SSB transform precision */
         BOOLEAN useResamp;               /**< user-input switch whether to use resampling */
-        FstatMethodType Fmethod;         //!< which Fstat-method/algorithm to use
+        int Fmethod;         //!< which Fstat-method/algorithm to use
         BOOLEAN useWholeSFTs;            /**< special switch: load all given frequency bins from SFTs */
         REAL8 mismatch1;                 /**< 'mismatch1' user-input needed here internally ... */
         UINT4 nSFTs;                     /**< total number of SFTs */
@@ -454,10 +454,10 @@ extern "C" {
             return var_Type;
         };
 
-        REAL8 comp_exp2F() {
+        void comp_exp2F() {
             var_exp2F = ( 4. + RNseg * ( var_avg2F - 4. ) );
         };
-        REAL8 comp_sigma2F() {
+        void comp_sigma2F() {
             var_sigma2F = sqrt( 2. * ( 4. + 2. * (RNseg * ( var_avg2F - 4.) ) ) );
         };
 
diff --git a/src/FollowUp/Nomad/FStatNomad.cpp b/src/FollowUp/Nomad/FStatNomad.cpp
index 3816e0183288c62bf4244f69ead77f5f380c4c33..e27029ebb460569d5a9ae98b3aa071f4152d9f75 100644
--- a/src/FollowUp/Nomad/FStatNomad.cpp
+++ b/src/FollowUp/Nomad/FStatNomad.cpp
@@ -1357,15 +1357,13 @@ INT4 FCSearch::XLALInitUserVars ( int argc, char *argv[] )
 	uvar->HybridSearch = FALSE;
 	uvar->HybridSearchLatticeAtOnce = FALSE;
 	uvar->HybridSearchMismatch = 0.1;
-	uvar->HybridSearchLattice = (char*)LALCalloc( 16, sizeof(CHAR) );
-    strcpy(uvar->HybridSearchLattice, "an-star");
+	uvar->HybridSearchLattice = TILING_LATTICE_ANSTAR;
 	uvar->HybridSearchPoints = 16;
 
 	uvar->FinalHybridSearch = FALSE;
 	uvar->FinalHybridSearchLatticeAtOnce = FALSE;
 	uvar->FinalHybridSearchMismatch = 0.8;
-	uvar->FinalHybridSearchLattice = (char*)LALCalloc( 16, sizeof(CHAR) );
-    strcpy(uvar->FinalHybridSearchLattice, "an-star");
+	uvar->FinalHybridSearchLattice = TILING_LATTICE_ANSTAR;
 	uvar->FinalHybridSearchPoints = 16;
 	
 	
@@ -1373,7 +1371,7 @@ INT4 FCSearch::XLALInitUserVars ( int argc, char *argv[] )
 
     SignalIsKnown = FALSE;
 	
-	uvar->FstatMethod = XLALStringDuplicate("DemodBest");
+	uvar->FstatMethod = FMETHOD_DEMOD_BEST;
 
     if ( (uvar->Alpha = XLALCreateStringVector("0,0,0,0,0,0,0",NULL)) == NULL) {
         LogPrintf (LOG_CRITICAL, "Call to XLALCreateStringVector() failed with xlalErrno = %d\n", xlalErrno );
@@ -1428,119 +1426,118 @@ INT4 FCSearch::XLALInitUserVars ( int argc, char *argv[] )
     }
 
     /* register user input variables */
-    XLALRegisterUvarMember( Signal, STRINGVector, 0, OPTIONAL, "Signal parameters [alpha,delta,freq,f1dot,f2dot,f3dot,cosi,psi,phi0,h0,asini,argp,ecc,tpssb,period]");
-    XLALRegisterUvarMember( Alpha, STRINGVector, 0, OPTIONAL, "Direction Alpha [startpoint,min,max,startstep,scale,fixed,desc]");
-    XLALRegisterUvarMember( Delta, STRINGVector, 0, OPTIONAL, "Direction Delta [startpoint,min,max,startstep,scale,fixed,desc]");
-    XLALRegisterUvarMember( Freq, STRINGVector, 0, OPTIONAL, "Direction Freq [startpoint,min,max,startstep,scale,fixed,desc]");
-    XLALRegisterUvarMember( f1dot, STRINGVector, 0, OPTIONAL, "Direction f1dot [startpoint,min,max,startstep,scale,fixed,desc]");
-    XLALRegisterUvarMember( f2dot, STRINGVector, 0, OPTIONAL, "Direction f2dot [startpoint,min,max,startstep,scale,fixed,desc]");
-    XLALRegisterUvarMember( f3dot, STRINGVector, 0, OPTIONAL, "Direction f3dot [startpoint,min,max,startstep,scale,fixed,desc]");
-    XLALRegisterUvarMember( TpSSB, STRINGVector, 0, OPTIONAL, "Direction TpSSB [startpoint,min,max,startstep,scale,fixed,desc]");
-    XLALRegisterUvarMember( Argp, STRINGVector, 0, OPTIONAL, "Direction Argp [startpoint,min,max,startstep,scale,fixed,desc]");
-    XLALRegisterUvarMember( asini, STRINGVector, 0, OPTIONAL, "Direction asini [startpoint,min,max,startstep,scale,fixed,desc]");
-    XLALRegisterUvarMember( ecc, STRINGVector, 0, OPTIONAL, "Direction ecc [startpoint,min,max,startstep,scale,fixed,desc]");
-    XLALRegisterUvarMember( Period, STRINGVector, 0, OPTIONAL, "Direction Period [startpoint,min,max,startstep,scale,fixed,desc]");
-    XLALRegisterUvarMember( DataFiles, STRING,  0, REQUIRED, "1st SFT file pattern");
-    XLALRegisterUvarMember( fnameout, STRING,  0, OPTIONAL, "Output filename");
-    XLALRegisterUvarMember( outputLoudest, BOOLEAN, 0,  OPTIONAL, "Output loudest F-statistic candidate + estimated MLE amplitudes");
-    XLALRegisterUvarMember( outputTiming, BOOLEAN , 0,  OPTIONAL, "Output timing information");
-    XLALRegisterUvarMember( refTime, REAL8,     0,  OPTIONAL, "Ref. time for pulsar pars [Default: mid-time]");
-    XLALRegisterUvarMember( ephemEarth, STRING,    0,  OPTIONAL, "Location of Earth ephemeris file");
-    XLALRegisterUvarMember( ephemSun, STRING,    0,  OPTIONAL, "Location of Sun ephemeris file");
-    XLALRegisterUvarMember( minStartTime, REAL8, 0,  OPTIONAL, "1st stage min start time of observation");
-    XLALRegisterUvarMember( maxEndTime, REAL8,  0,  OPTIONAL, "1st stage max end time of observation");
-
-    XLALRegisterUvarMember( tStack, REAL8,      0, OPTIONAL, "Duration of segments (sec)");
-    XLALRegisterUvarMember( segmentList, STRING,  0, OPTIONAL, "File containing a segment list used to compute Fisher ellipsoid: lines of form <startGPS endGPS duration[h] NumSFTs>");
-    XLALRegisterUvarMember( TargetedSearch, BOOLEAN, 0, SPECIAL,  "Do targeted search");
-
-    XLALRegisterUvarMember( avg2F, REAL8, 0,  OPTIONAL, "average 2F of candidate");
-    XLALRegisterUvarMember( Type, INT4, 0,  OPTIONAL, "0=UNDEFINED_DIRECTION, 1=MODEL_SEARCH_DIR, 2=NO_DIRECTION, 3=ORTHO_1, 4=ORTHO_2, 5=ORTHO_NP1_QUAD, 6=ORTHO_NP1_NEG, 7=ORTHO_NP1_UNI, 8=DYN_ADDED, 9=ORTHO_2N, 10=LT_1, 11=LT_2, 12=LT_2N, 13=LT_NP1, 14=GPS_BINARY, 15=GPS_2N_STATIC, 16=GPS_2N_RAND, 17=GPS_NP1_STATIC_UNIFORM, 18=GPS_NP1_STATIC, 19=GPS_NP1_RAND_UNIFORM, 20=GPS_NP1_RAND, 21=PROSPECT_DIR");
-    XLALRegisterUvarMember( FinalType, INT4,  0,  OPTIONAL, "Type for the coherent stage in a chain search.");
-    XLALRegisterUvarMember( LTMADS, INT4, 0, OPTIONAL, "Regardless of Type also do Type=LT_NP1 search AFTER the regular search");
-    XLALRegisterUvarMember( FinalLTMADS, INT4, 0, OPTIONAL, "LTMADS for the coherent stage");
-    XLALRegisterUvarMember( DisplayDegree, INT4, 0, DEVELOPER, "0=empty,[1]=normal,[2]=verbose");
-    XLALRegisterUvarMember( Epsilon, REAL8,   0,  DEVELOPER, "Precision on reals");
-    XLALRegisterUvarMember( MinMeshSize, REAL8,  0,  DEVELOPER, "Miminmal mesh size");
-    XLALRegisterUvarMember( MinPollSize, REAL8, 0,  DEVELOPER, "Miminmal pol size");
-    XLALRegisterUvarMember( MaxIterations, INT4, 0,  DEVELOPER, "Maximal iterations");
-    XLALRegisterUvarMember( ModelSearch, INT4, 0,  OPTIONAL, "Model search");
-    XLALRegisterUvarMember( ModelEvalSort, INT4, 0, OPTIONAL, "Model evaluation sort");
-    XLALRegisterUvarMember( VnsSearch, REAL8,  0,  OPTIONAL, "VNS search");
-    XLALRegisterUvarMember( MaxBBEval, INT4,   0,  OPTIONAL, "Black box evaluation");
-    XLALRegisterUvarMember( MeshCoarseningExponent, INT4, 0,  OPTIONAL, "Mesh coarsening exponent");
-    XLALRegisterUvarMember( LoopMeshCoarseningExponent, BOOLEAN, 0, OPTIONAL, "Loop over mesh coarsening exponents");
-    XLALRegisterUvarMember( MinMeshCoarseningExponent, INT4, 0,  OPTIONAL, "Minimal mesh coarsening exponent");
-    XLALRegisterUvarMember( MaxMeshCoarseningExponent, INT4, 0,  OPTIONAL, "Maxmimal mesh coarsening exponent");
-    XLALRegisterUvarMember( StepMeshCoarseningExponent, INT4,       0,  OPTIONAL, "Mesh coarsening exponent step size");
-    XLALRegisterUvarMember( FinalMinMeshCoarseningExponent, INT4,       0,  OPTIONAL, "Minimal mesh coarsening exponent of the final fully-coherent stage");
-    XLALRegisterUvarMember( FinalMaxMeshCoarseningExponent, INT4,      0,  OPTIONAL, "Maxmimal mesh coarsening exponent of the final fully-coherent stage");
-    XLALRegisterUvarMember( FinalStepMeshCoarseningExponent, INT4,       0,  OPTIONAL, "Mesh coarsening exponent step size  of the final fully-coherent stage");
-    XLALRegisterUvarMember( MeshRefiningExponent, INT4,       0,  OPTIONAL, "Mesh refining exponent");
-	XLALRegisterUvarMember( MeshType, INT4,      0,  OPTIONAL, "Mesh type: 0 = XMesh, 1 = SMesh");
-    XLALRegisterUvarMember( MeshUpdateBasis, REAL8,      0,  OPTIONAL, "Mesh update basis, user with SMesh");
-    XLALRegisterUvarMember( FinalMeshUpdateBasis, REAL8,      0,  OPTIONAL, "Mesh update basis of the final fully-coherent stage, used with SMesh");
-    XLALRegisterUvarMember( PollUpdateBasis, REAL8,       0,  OPTIONAL, "Poll update basis, used with XMesh");
-    XLALRegisterUvarMember( FinalPollUpdateBasis, REAL8,      0,  OPTIONAL, "Poll update basis of the final fully-coherent stage, used with XMesh");	
-    XLALRegisterUvarMember(  UseMetric, BOOLEAN, 0, OPTIONAL, "Use metric to restrict the search volume");
-    XLALRegisterUvarMember( MetricIFO, STRINGVector, 0, OPTIONAL, "Use this IFOs to compute metric");
-    XLALRegisterUvarMember( nB, REAL8, 0, OPTIONAL, "Fisher distance (e.g. for 1D: 1 = 1sigma, 2 = 2sigma, 3 = 3sigma, for 2D: 1.52 = 1sigma, 2.49 = 2sigma, 3.44 = 3sigma, for 3D: 1.88 = 1sigma, 2.83 = 2sigma, 3.76 = 3sigma, for 4D: 2.17 = 1sigma, 3.12 = 2sigma, 4.03 = 3sigma)");
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( Signal, STRINGVector, 0, OPTIONAL, "Signal parameters [alpha,delta,freq,f1dot,f2dot,f3dot,cosi,psi,phi0,h0,asini,argp,ecc,tpssb,period]") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( Alpha, STRINGVector, 0, OPTIONAL, "Direction Alpha [startpoint,min,max,startstep,scale,fixed,desc]") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( Delta, STRINGVector, 0, OPTIONAL, "Direction Delta [startpoint,min,max,startstep,scale,fixed,desc]") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( Freq, STRINGVector, 0, OPTIONAL, "Direction Freq [startpoint,min,max,startstep,scale,fixed,desc]") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( f1dot, STRINGVector, 0, OPTIONAL, "Direction f1dot [startpoint,min,max,startstep,scale,fixed,desc]") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( f2dot, STRINGVector, 0, OPTIONAL, "Direction f2dot [startpoint,min,max,startstep,scale,fixed,desc]") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( f3dot, STRINGVector, 0, OPTIONAL, "Direction f3dot [startpoint,min,max,startstep,scale,fixed,desc]") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( TpSSB, STRINGVector, 0, OPTIONAL, "Direction TpSSB [startpoint,min,max,startstep,scale,fixed,desc]") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( Argp, STRINGVector, 0, OPTIONAL, "Direction Argp [startpoint,min,max,startstep,scale,fixed,desc]") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( asini, STRINGVector, 0, OPTIONAL, "Direction asini [startpoint,min,max,startstep,scale,fixed,desc]") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( ecc, STRINGVector, 0, OPTIONAL, "Direction ecc [startpoint,min,max,startstep,scale,fixed,desc]") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( Period, STRINGVector, 0, OPTIONAL, "Direction Period [startpoint,min,max,startstep,scale,fixed,desc]") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( DataFiles, STRING,  0, REQUIRED, "1st SFT file pattern") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( fnameout, STRING,  0, OPTIONAL, "Output filename") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( outputLoudest, BOOLEAN, 0,  OPTIONAL, "Output loudest F-statistic candidate + estimated MLE amplitudes") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( outputTiming, BOOLEAN , 0,  OPTIONAL, "Output timing information") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( refTime, REAL8,     0,  OPTIONAL, "Ref. time for pulsar pars [Default: mid-time]") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( ephemEarth, STRING,    0,  OPTIONAL, "Location of Earth ephemeris file") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( ephemSun, STRING,    0,  OPTIONAL, "Location of Sun ephemeris file") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( minStartTime, REAL8, 0,  OPTIONAL, "1st stage min start time of observation") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( maxEndTime, REAL8,  0,  OPTIONAL, "1st stage max end time of observation") == XLAL_SUCCESS, XLAL_EFUNC);
+
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( tStack, REAL8,      0, OPTIONAL, "Duration of segments (sec)") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( segmentList, STRING,  0, OPTIONAL, "File containing a segment list used to compute Fisher ellipsoid: lines of form <startGPS endGPS duration[h] NumSFTs>") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( TargetedSearch, BOOLEAN, 0, OPTIONAL,  "Do targeted search") == XLAL_SUCCESS, XLAL_EFUNC);
+
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( avg2F, REAL8, 0,  OPTIONAL, "average 2F of candidate") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( Type, INT4, 0,  OPTIONAL, "0=UNDEFINED_DIRECTION, 1=MODEL_SEARCH_DIR, 2=NO_DIRECTION, 3=ORTHO_1, 4=ORTHO_2, 5=ORTHO_NP1_QUAD, 6=ORTHO_NP1_NEG, 7=ORTHO_NP1_UNI, 8=DYN_ADDED, 9=ORTHO_2N, 10=LT_1, 11=LT_2, 12=LT_2N, 13=LT_NP1, 14=GPS_BINARY, 15=GPS_2N_STATIC, 16=GPS_2N_RAND, 17=GPS_NP1_STATIC_UNIFORM, 18=GPS_NP1_STATIC, 19=GPS_NP1_RAND_UNIFORM, 20=GPS_NP1_RAND, 21=PROSPECT_DIR") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( FinalType, INT4,  0,  OPTIONAL, "Type for the coherent stage in a chain search.") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( LTMADS, INT4, 0, OPTIONAL, "Regardless of Type also do Type=LT_NP1 search AFTER the regular search") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( FinalLTMADS, INT4, 0, OPTIONAL, "LTMADS for the coherent stage") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( DisplayDegree, INT4, 0, DEVELOPER, "0=empty,[1]=normal,[2]=verbose") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( Epsilon, REAL8,   0,  DEVELOPER, "Precision on reals") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( MinMeshSize, REAL8,  0,  DEVELOPER, "Miminmal mesh size") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( MinPollSize, REAL8, 0,  DEVELOPER, "Miminmal pol size") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( MaxIterations, INT4, 0,  DEVELOPER, "Maximal iterations") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( ModelSearch, INT4, 0,  OPTIONAL, "Model search") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( ModelEvalSort, INT4, 0, OPTIONAL, "Model evaluation sort") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( VnsSearch, REAL8,  0,  OPTIONAL, "VNS search") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( MaxBBEval, INT4,   0,  OPTIONAL, "Black box evaluation") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( MeshCoarseningExponent, INT4, 0,  OPTIONAL, "Mesh coarsening exponent") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( LoopMeshCoarseningExponent, BOOLEAN, 0, OPTIONAL, "Loop over mesh coarsening exponents") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( MinMeshCoarseningExponent, INT4, 0,  OPTIONAL, "Minimal mesh coarsening exponent") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( MaxMeshCoarseningExponent, INT4, 0,  OPTIONAL, "Maxmimal mesh coarsening exponent") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( StepMeshCoarseningExponent, INT4,       0,  OPTIONAL, "Mesh coarsening exponent step size") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( FinalMinMeshCoarseningExponent, INT4,       0,  OPTIONAL, "Minimal mesh coarsening exponent of the final fully-coherent stage") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( FinalMaxMeshCoarseningExponent, INT4,      0,  OPTIONAL, "Maxmimal mesh coarsening exponent of the final fully-coherent stage") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( FinalStepMeshCoarseningExponent, INT4,       0,  OPTIONAL, "Mesh coarsening exponent step size  of the final fully-coherent stage") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( MeshRefiningExponent, INT4,       0,  OPTIONAL, "Mesh refining exponent") == XLAL_SUCCESS, XLAL_EFUNC);
+	XLAL_CHECK_MAIN( XLALRegisterUvarMember( MeshType, INT4,      0,  OPTIONAL, "Mesh type: 0 = XMesh, 1 = SMesh") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( MeshUpdateBasis, REAL8,      0,  OPTIONAL, "Mesh update basis, user with SMesh") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( FinalMeshUpdateBasis, REAL8,      0,  OPTIONAL, "Mesh update basis of the final fully-coherent stage, used with SMesh") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( PollUpdateBasis, REAL8,       0,  OPTIONAL, "Poll update basis, used with XMesh") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( FinalPollUpdateBasis, REAL8,      0,  OPTIONAL, "Poll update basis of the final fully-coherent stage, used with XMesh") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember(  UseMetric, BOOLEAN, 0, OPTIONAL, "Use metric to restrict the search volume") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( MetricIFO, STRINGVector, 0, OPTIONAL, "Use this IFOs to compute metric") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( nB, REAL8, 0, OPTIONAL, "Fisher distance (e.g. for 1D: 1 = 1sigma, 2 = 2sigma, 3 = 3sigma, for 2D: 1.52 = 1sigma, 2.49 = 2sigma, 3.44 = 3sigma, for 3D: 1.88 = 1sigma, 2.83 = 2sigma, 3.76 = 3sigma, for 4D: 2.17 = 1sigma, 3.12 = 2sigma, 4.03 = 3sigma)") == XLAL_SUCCESS, XLAL_EFUNC);
     /* developer user variables */
-    XLALRegisterUvarMember( blocksRngMed, INT4, 0, DEVELOPER, "RngMed block size");
-    XLALRegisterUvarMember( SSBprecision, INT4, 0, DEVELOPER, "Precision for SSB transform");
-	XLALRegisterUvarMember( FstatMethod, STRING, 0, OPTIONAL, XLALFstatMethodHelpString());
-    XLALRegisterUvarMember( Dterms, INT4, 0, DEVELOPER, "No. of terms to keep in Dirichlet Kernel");
-    XLALRegisterUvarMember( dopplermax, REAL8,  0, DEVELOPER, "Max Doppler shift");
-    XLALRegisterUvarMember( SaveNomadStat, BOOLEAN, 0, OPTIONAL, "Save Nomad statistic files");
-	XLALRegisterUvarMember( Seed, INT4,       0,  OPTIONAL, "Random seed, use -1 for a random number based on PID");
-    XLALRegisterUvarMember( ReSearch, BOOLEAN,  0, OPTIONAL, "Repeat the search starting from the best found point");
-    XLALRegisterUvarMember( FinalReSearch, BOOLEAN,   0, OPTIONAL, "Final repeat of the search starting from the best found point");
-    XLALRegisterUvarMember( RandomSearch, INT4,   0, OPTIONAL, "Search starting from random point inside the box, except for the first trial");
-    XLALRegisterUvarMember( RandomSearchRadius, INT4,   0, OPTIONAL, "Radius in percent of the search band per direction to randomize around the starting point");
-    XLALRegisterUvarMember( FixedSpindownSearch, BOOLEAN,   0, OPTIONAL, "Constant spindown search");
-    XLALRegisterUvarMember( ClearCache, BOOLEAN,   0, DEVELOPER, "Clear the internal cache between runs");
-    XLALRegisterUvarMember( ModelSearchMaxTrialPts, INT4,   0, DEVELOPER, "Limit on the number of points for one model search");
-    XLALRegisterUvarMember( ModelQuadMinYSize, INT4,   0, DEVELOPER, "Inf. limit on the size of interpolation sets for quadratic models");
-    XLALRegisterUvarMember( ModelQuadMaxYSize, INT4,   0, DEVELOPER, "Sup. limit on the size of interpolation sets for quadratic models");
-    XLALRegisterUvarMember( ModelQuadRadiusFactor, REAL8,   0, DEVELOPER, "Quadratic model search radius factor");
-    XLALRegisterUvarMember( ModelQuadUseWP, BOOLEAN,     0, DEVELOPER,  "Enable the strategy to maintain well-poisedness with quadratic models");
-    XLALRegisterUvarMember( ModelSearchOptimistic, BOOLEAN,     0, DEVELOPER,  "If model search is optimistic or not");
-    XLALRegisterUvarMember( ModelSearchProjToMesh, BOOLEAN, 0, DEVELOPER, "If model search trial points are projected to the mesh");
-    XLALRegisterUvarMember( OpportunisticEval, BOOLEAN, 0, DEVELOPER, "Opportunistic strategy");
-    XLALRegisterUvarMember( OpportunisticLuckyEval, BOOLEAN, 0, DEVELOPER, "Additional evaluation in opportunistic strategy");
-    XLALRegisterUvarMember( version,BOOLEAN,     'V', SPECIAL,  "Output version information");
-    XLALRegisterUvarMember( log, BOOLEAN,    0, OPTIONAL,  "Do logging");
-    XLALRegisterUvarMember( BreakASAP,BOOLEAN, 0, OPTIONAL, "Break the search if we are within the expectation");
-    XLALRegisterUvarMember( NoiseLimit, REAL8, 0, OPTIONAL, "Minimal acceptable fully-coherent 2F");
-    XLALRegisterUvarMember( AcceptDev, REAL8,   0, OPTIONAL, "Number of standard deviations from the expectation to break the search if BreakASAP is used");
-    XLALRegisterUvarMember( FStatSearchType, INT4, 0, OPTIONAL, "F-statistic search type: 0 - semi-coherent search, 1 - fully-coherent search, 2 - both");
-    XLALRegisterUvarMember( SemicoherentStages, INT4, 0, OPTIONAL, "Number of semicoherent stages");
-    XLALRegisterUvarMember( DumpSegments,BOOLEAN, 0, OPTIONAL, "Dump used segments at each stage");
-    XLALRegisterUvarMember( DumpMetric,BOOLEAN, 0, DEVELOPER, "Dump the coherent and semicoherent metric for the signal parameters and exit.");
-    XLALRegisterUvarMember( DumpCache,BOOLEAN, 0, DEVELOPER, "Dump all computed parameter-space points to a file.");
-    XLALRegisterUvarMember( PredictFStat,BOOLEAN, 0, OPTIONAL,  "Predict FStat");
-    XLALRegisterUvarMember( ComputeStartingPointStatistics,BOOLEAN, 0, OPTIONAL, "Compute the semi-coherent and fully-coherent 2F value of the starting point");
-    XLALRegisterUvarMember( ComputeDTS,BOOLEAN, 0, OPTIONAL, "Compute the squared Fisher distance to the signal in FStatSearchType=2 mode, using the Fisher matrix");
-    XLALRegisterUvarMember( RoundStat,BOOLEAN, 0, OPTIONAL, "Round the F-value to RoundStatDigit");
-    XLALRegisterUvarMember( RoundStatDigit,INT4, 0, OPTIONAL, "Rounding precision");
-    XLALRegisterUvarMember( FinalRoundStatDigit,INT4, 0, OPTIONAL, "Final rounding precision");
-    XLALRegisterUvarMember( BinarySearch,BOOLEAN, 0, OPTIONAL, "Do binary search");
-    XLALRegisterUvarMember( BNSLEL,BOOLEAN, 0, DEVELOPER, "Use low-eccentricity approximation to compute BNS metric [only TRUE is supported for now!]");
-	XLALRegisterUvarMember( HybridSearch,BOOLEAN, 0, OPTIONAL, "Do hybrid search (grid search in the Nomad search step)");
-	XLALRegisterUvarMember( HybridSearchLatticeAtOnce,BOOLEAN, 0, OPTIONAL, "Compute the lattice for the hybrid search at once");
-	XLALRegisterUvarMember( HybridSearchMismatch,REAL8, 0, OPTIONAL, "Hybrid search maximal mismatch");
-	XLALRegisterUvarMember( HybridSearchLattice,STRING, 0, OPTIONAL, "Hybrid search lattice type: 'an-star' or 'cubic'");
-	XLALRegisterUvarMember( HybridSearchPoints,INT4, 0, OPTIONAL, "Hybrid search number of points");
-	XLALRegisterUvarMember( FinalHybridSearch,BOOLEAN, 0, OPTIONAL, "Final do hybrid search (grid search in the Nomad search step)");
-	XLALRegisterUvarMember( FinalHybridSearchLatticeAtOnce,BOOLEAN, 0, OPTIONAL, "Final compute the lattice for the hybrid search at once");
-	XLALRegisterUvarMember( FinalHybridSearchMismatch,REAL8, 0, OPTIONAL, "Final hybrid search maximal mismatch");
-	XLALRegisterUvarMember( FinalHybridSearchLattice,STRING, 0, OPTIONAL, "Final hybrid search lattice type: 'an-star' or 'cubic'");
-	XLALRegisterUvarMember( FinalHybridSearchPoints,INT4, 0, OPTIONAL, "Final hybrid search number of points");
-	XLALRegisterUvarMember( metricType, INT4, 0, OPTIONAL, "Type of metric to compute: 0=phase-metric, 1=average F-metric");
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( blocksRngMed, INT4, 0, DEVELOPER, "RngMed block size") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( SSBprecision, INT4, 0, DEVELOPER, "Precision for SSB transform") == XLAL_SUCCESS, XLAL_EFUNC);
+	XLAL_CHECK_MAIN( XLALRegisterUvarMember( FstatMethod,  INT4, 0, OPTIONAL,  "F-statistic method to use" ) == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( Dterms, INT4, 0, DEVELOPER, "No. of terms to keep in Dirichlet Kernel") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( dopplermax, REAL8,  0, DEVELOPER, "Max Doppler shift") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( SaveNomadStat, BOOLEAN, 0, OPTIONAL, "Save Nomad statistic files") == XLAL_SUCCESS, XLAL_EFUNC);
+	XLAL_CHECK_MAIN( XLALRegisterUvarMember( Seed, INT4,       0,  OPTIONAL, "Random seed, use -1 for a random number based on PID") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( ReSearch, BOOLEAN,  0, OPTIONAL, "Repeat the search starting from the best found point") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( FinalReSearch, BOOLEAN,   0, OPTIONAL, "Final repeat of the search starting from the best found point") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( RandomSearch, INT4,   0, OPTIONAL, "Search starting from random point inside the box, except for the first trial") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( RandomSearchRadius, INT4,   0, OPTIONAL, "Radius in percent of the search band per direction to randomize around the starting point") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( FixedSpindownSearch, BOOLEAN,   0, OPTIONAL, "Constant spindown search") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( ClearCache, BOOLEAN,   0, DEVELOPER, "Clear the internal cache between runs") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( ModelSearchMaxTrialPts, INT4,   0, DEVELOPER, "Limit on the number of points for one model search") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( ModelQuadMinYSize, INT4,   0, DEVELOPER, "Inf. limit on the size of interpolation sets for quadratic models") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( ModelQuadMaxYSize, INT4,   0, DEVELOPER, "Sup. limit on the size of interpolation sets for quadratic models") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( ModelQuadRadiusFactor, REAL8,   0, DEVELOPER, "Quadratic model search radius factor") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( ModelQuadUseWP, BOOLEAN,     0, DEVELOPER,  "Enable the strategy to maintain well-poisedness with quadratic models") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( ModelSearchOptimistic, BOOLEAN,     0, DEVELOPER,  "If model search is optimistic or not") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( ModelSearchProjToMesh, BOOLEAN, 0, DEVELOPER, "If model search trial points are projected to the mesh") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( OpportunisticEval, BOOLEAN, 0, DEVELOPER, "Opportunistic strategy") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( OpportunisticLuckyEval, BOOLEAN, 0, DEVELOPER, "Additional evaluation in opportunistic strategy") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( log, BOOLEAN,    0, OPTIONAL,  "Do logging") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( BreakASAP,BOOLEAN, 0, OPTIONAL, "Break the search if we are within the expectation") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( NoiseLimit, REAL8, 0, OPTIONAL, "Minimal acceptable fully-coherent 2F") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( AcceptDev, REAL8,   0, OPTIONAL, "Number of standard deviations from the expectation to break the search if BreakASAP is used") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( FStatSearchType, INT4, 0, OPTIONAL, "F-statistic search type: 0 - semi-coherent search, 1 - fully-coherent search, 2 - both") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( SemicoherentStages, INT4, 0, OPTIONAL, "Number of semicoherent stages") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( DumpSegments,BOOLEAN, 0, OPTIONAL, "Dump used segments at each stage") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( DumpMetric,BOOLEAN, 0, DEVELOPER, "Dump the coherent and semicoherent metric for the signal parameters and exit.") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( DumpCache,BOOLEAN, 0, DEVELOPER, "Dump all computed parameter-space points to a file.") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( PredictFStat,BOOLEAN, 0, OPTIONAL,  "Predict FStat") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( ComputeStartingPointStatistics,BOOLEAN, 0, OPTIONAL, "Compute the semi-coherent and fully-coherent 2F value of the starting point") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( ComputeDTS,BOOLEAN, 0, OPTIONAL, "Compute the squared Fisher distance to the signal in FStatSearchType=2 mode, using the Fisher matrix") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( RoundStat,BOOLEAN, 0, OPTIONAL, "Round the F-value to RoundStatDigit") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( RoundStatDigit,INT4, 0, OPTIONAL, "Rounding precision") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( FinalRoundStatDigit,INT4, 0, OPTIONAL, "Final rounding precision") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( BinarySearch,BOOLEAN, 0, OPTIONAL, "Do binary search") == XLAL_SUCCESS, XLAL_EFUNC);
+    XLAL_CHECK_MAIN( XLALRegisterUvarMember( BNSLEL,BOOLEAN, 0, DEVELOPER, "Use low-eccentricity approximation to compute BNS metric [only TRUE is supported for now!]") == XLAL_SUCCESS, XLAL_EFUNC);
+	XLAL_CHECK_MAIN( XLALRegisterUvarMember( HybridSearch,BOOLEAN, 0, OPTIONAL, "Do hybrid search (grid search in the Nomad search step)") == XLAL_SUCCESS, XLAL_EFUNC);
+	XLAL_CHECK_MAIN( XLALRegisterUvarMember( HybridSearchLatticeAtOnce,BOOLEAN, 0, OPTIONAL, "Compute the lattice for the hybrid search at once") == XLAL_SUCCESS, XLAL_EFUNC);
+	XLAL_CHECK_MAIN( XLALRegisterUvarMember( HybridSearchMismatch,REAL8, 0, OPTIONAL, "Hybrid search maximal mismatch") == XLAL_SUCCESS, XLAL_EFUNC);
+	XLAL_CHECK_MAIN( XLALRegisterUvarMember( HybridSearchLattice,INT4, 0, OPTIONAL, "Hybrid search lattice type: 0 - cubic, 1 - an-star, 2 - max") == XLAL_SUCCESS, XLAL_EFUNC);
+	XLAL_CHECK_MAIN( XLALRegisterUvarMember( HybridSearchPoints,INT4, 0, OPTIONAL, "Hybrid search number of points") == XLAL_SUCCESS, XLAL_EFUNC);
+	XLAL_CHECK_MAIN( XLALRegisterUvarMember( FinalHybridSearch,BOOLEAN, 0, OPTIONAL, "Final do hybrid search (grid search in the Nomad search step)") == XLAL_SUCCESS, XLAL_EFUNC);
+	XLAL_CHECK_MAIN( XLALRegisterUvarMember( FinalHybridSearchLatticeAtOnce,BOOLEAN, 0, OPTIONAL, "Final compute the lattice for the hybrid search at once") == XLAL_SUCCESS, XLAL_EFUNC);
+	XLAL_CHECK_MAIN( XLALRegisterUvarMember( FinalHybridSearchMismatch,REAL8, 0, OPTIONAL, "Final hybrid search maximal mismatch") == XLAL_SUCCESS, XLAL_EFUNC);
+	XLAL_CHECK_MAIN( XLALRegisterUvarMember( FinalHybridSearchLattice,INT4, 0, OPTIONAL, "Final hybrid search lattice type: 0 - cubic, 1 - an-star, 2 - max") == XLAL_SUCCESS, XLAL_EFUNC);
+	XLAL_CHECK_MAIN( XLALRegisterUvarMember( FinalHybridSearchPoints,INT4, 0, OPTIONAL, "Final hybrid search number of points") == XLAL_SUCCESS, XLAL_EFUNC);
+	XLAL_CHECK_MAIN( XLALRegisterUvarMember( metricType, INT4, 0, OPTIONAL, "Type of metric to compute: 0=phase-metric, 1=average F-metric") == XLAL_SUCCESS, XLAL_EFUNC);
 
   /* read cmdline & cfgfile  */
   BOOLEAN should_exit = 0;
-  XLAL_CHECK( XLALUserVarReadAllInput( &should_exit, argc, argv ) == XLAL_SUCCESS, XLAL_EFUNC );
+  XLAL_CHECK( XLALUserVarReadAllInput( &should_exit, argc, argv, lalAppsVCSInfoList ) == XLAL_SUCCESS, XLAL_EFUNC );
   if ( should_exit ) {
     exit (1);
   }
@@ -1645,11 +1642,8 @@ INT4 FCSearch::XLALInitUserVars ( int argc, char *argv[] )
     usefulParams.nStacks = 1;
 	usefulParams.SSBprec = uvar->SSBprecision;
 
-  if ( XLALParseFstatMethodString ( &usefulParams.Fmethod, uvar->FstatMethod ) != XLAL_SUCCESS ) {
-    XLALPrintError ("XLALParseFstatMethodString() failed.\n");
-    return( FSTATFCNOMAD_EBAD );
-  }
-  
+	usefulParams.Fmethod = uvar->FstatMethod;
+
     /* set reference time for pulsar parameters */
     if ( XLALUserVarWasSet(&uvar->refTime))
         usefulParams.refTime = uvar->refTime;
diff --git a/src/FollowUp/Nomad/FStatNomad.h b/src/FollowUp/Nomad/FStatNomad.h
index d57a4a685a7b8fb485e3266de5adb54d7fa9d4e2..e7f86436020a87951993f02cd8ac7980e37f9b9a 100644
--- a/src/FollowUp/Nomad/FStatNomad.h
+++ b/src/FollowUp/Nomad/FStatNomad.h
@@ -71,7 +71,7 @@ extern "C" {
 
         CHAR *ephemEarth;
         CHAR *ephemSun;
-		CHAR *FstatMethod;
+		INT4 FstatMethod;
         CHAR *fnameout;
         CHAR *DataFiles;
         INT4 SortToplist;
@@ -172,12 +172,12 @@ extern "C" {
 		
 		BOOLEAN HybridSearch;
 		REAL8 HybridSearchMismatch;
-		CHAR *HybridSearchLattice;
+		INT4 HybridSearchLattice;
 		INT4 HybridSearchPoints;
 		BOOLEAN HybridSearchLatticeAtOnce;
 		BOOLEAN FinalHybridSearch;
 		REAL8 FinalHybridSearchMismatch;
-		CHAR *FinalHybridSearchLattice;
+		INT4 FinalHybridSearchLattice;
 		INT4 FinalHybridSearchPoints;
 		BOOLEAN FinalHybridSearchLatticeAtOnce;
 		
diff --git a/src/FollowUp/Nomad/libFStatNomad.cpp b/src/FollowUp/Nomad/libFStatNomad.cpp
index 46e0b7cf73604e14900a78baa599d6a0662ceecb..26e834860d2474993808ae3a7f9abd6bfac29adc 100644
--- a/src/FollowUp/Nomad/libFStatNomad.cpp
+++ b/src/FollowUp/Nomad/libFStatNomad.cpp
@@ -3321,7 +3321,7 @@ FStatNomad::FStatNomad() {
 FStatNomad::~FStatNomad() {};
 
 
-void FStatNomad::HybridSearchCreateLattice(gsl_matrix *g, REAL4 m,CHAR *lattice) {
+void FStatNomad::HybridSearchCreateLattice(gsl_matrix *g, REAL4 m,INT4 lattice) {
 	tiling = NULL;
 
     tiling = XLALCreateLatticeTiling(DimMetric(SType(),USETYPE_SEARCH));
@@ -3340,7 +3340,6 @@ void FStatNomad::HybridSearchCreateLattice(gsl_matrix *g, REAL4 m,CHAR *lattice)
 
 	XLAL_CHECK_MAIN(XLALSetTilingLatticeAndMetric(tiling, lattice, g, m)  == XLAL_SUCCESS, XLAL_EFUNC);
 
-
 	// Create a lattice iterator
 	LatticeTilingIterator *itr = XLALCreateLatticeTilingIterator(tiling, n);
 	XLAL_CHECK_MAIN(itr != NULL, XLAL_EFUNC);
diff --git a/src/FollowUp/Nomad/libFStatNomad.h b/src/FollowUp/Nomad/libFStatNomad.h
index cb1ffbd4f90f221f19f175a53697591ba6599451..0e28cd785fa8957fbd6cdebaa7096d98f3d786cc 100644
--- a/src/FollowUp/Nomad/libFStatNomad.h
+++ b/src/FollowUp/Nomad/libFStatNomad.h
@@ -58,7 +58,7 @@
 #include <lal/LALInitBarycenter.h>
 #include <lal/Velocity.h>
 #include <lal/ExtrapolatePulsarSpins.h>
-#include <lal/EstimateAmplitudeParams.h>
+#include <lal/FstatisticTools.h>
 #include <lal/Date.h>
 #include <lal/LALHough.h>
 #include <lal/NormalizeSFTRngMed.h>
@@ -307,7 +307,7 @@ typedef struct {
     REAL8 df2dot;                    /**< coarse grid resolution in 2nd spindown */
     UINT4 extraBinsFstat;            /**< Extra bins required for Fstat calculation */
     SSBprecision SSBprec;            /**< SSB transform precision */
-    FstatMethodType Fmethod;         //!< which Fstat-method/algorithm to use
+    INT4 Fmethod;         //!< which Fstat-method/algorithm to use
     UINT4 nSFTs;                     /**< total number of SFTs */
     LALStringVector *detectorIDs;    /**< vector of detector IDs */
     REAL4 NSegmentsInvX[PULSAR_MAX_DETECTORS]; /**< effective inverse number of segments per detector (needed for correct averaging in single-IFO F calculation) */
@@ -419,7 +419,7 @@ public:
 		m = v;
   }
   
-  void Lattice(CHAR *v){
+  void Lattice(INT4 v){
 		lattice = v;
   }
 
@@ -436,7 +436,7 @@ private:
   INT4 np;
   BOOLEAN partiallattice;
   std::vector<tDirection> directions;
-  CHAR* lattice;  
+  INT4 lattice;
   INT4 mdim;
   REAL8 m;
   gsl_matrix *g;
@@ -472,7 +472,7 @@ public:
 		m = v;
   }
   
-  void Lattice(CHAR* v){
+  void Lattice(INT4 v){
 		lattice = v;
   }
 
@@ -490,7 +490,7 @@ private:
   INT4 np;
   BOOLEAN partiallattice;
   std::vector<tDirection> directions;
-  CHAR* lattice;  
+  INT4 lattice;
   INT4 mdim;
   REAL8 m;
   gsl_matrix *g;
@@ -2109,11 +2109,11 @@ public:
 		return var_HybridSearchMismatch;
 	}
 
-	void HybridSearchLattice(CHAR* v){
+	void HybridSearchLattice(INT4 v){
 		var_HybridSearchLattice = v;
 	}
 	
-	CHAR* HybridSearchLattice(){
+	INT4 HybridSearchLattice(){
 		return var_HybridSearchLattice;
 	}
 
@@ -2149,11 +2149,11 @@ public:
 		return var_FinalHybridSearchMismatch;
 	}
 
-	void FinalHybridSearchLattice(CHAR* v){
+	void FinalHybridSearchLattice(INT4 v){
 		var_FinalHybridSearchLattice = v;
 	}
 	
-	CHAR* FinalHybridSearchLattice(){
+	INT4 FinalHybridSearchLattice(){
 		return var_FinalHybridSearchLattice;
 	}
 
@@ -2182,7 +2182,7 @@ public:
 	INT4 Nsegi[6];
 
 
-	void HybridSearchCreateLattice(gsl_matrix *g, REAL4 m,CHAR *lattice);
+	void HybridSearchCreateLattice(gsl_matrix *g, REAL4 m,INT4 lattice);
 	INT4 compute_min_extent(gsl_vector *minext, const gsl_matrix *g);
 
     MultiSFTVector *multiSFTs;
@@ -2281,12 +2281,12 @@ private:
 	BOOLEAN var_HybridSearch;
 	BOOLEAN var_HybridSearchLatticeAtOnce;
 	REAL4 var_HybridSearchMismatch;
-	CHAR *var_HybridSearchLattice;
+	INT4 var_HybridSearchLattice;
 	INT4 var_HybridSearchPoints;
 	BOOLEAN var_FinalHybridSearch;	
 	BOOLEAN var_FinalHybridSearchLatticeAtOnce;		
 	REAL4 var_FinalHybridSearchMismatch;
-	CHAR *var_FinalHybridSearchLattice;
+	INT4 var_FinalHybridSearchLattice;
 	INT4 var_FinalHybridSearchPoints;
 
     UINT8 trials_cnt;
diff --git a/src/GoodiesAndClones/makefakedata_v5.c b/src/GoodiesAndClones/makefakedata_v5.c
index 8dbe9b36e7f9ff7405fbe1210fc7e2a3ff490973..47467e165c569c95954c6d2b2ad3061e6c340235 100644
--- a/src/GoodiesAndClones/makefakedata_v5.c
+++ b/src/GoodiesAndClones/makefakedata_v5.c
@@ -1,5 +1,5 @@
 /*
-*  Copyright (C) 2013 Reinhard Prix
+*  Copyright (C) 2013, 2015 Reinhard Prix
 *  Copyright (C) 2008, 2010 Karl Wette
 *  Copyright (C) 2008 Chris Messenger
 *  Copyright (C) 2007 Badri Krishnan, Reinhard Prix
@@ -22,7 +22,7 @@
 
 /**
  * \file
- * \ingroup lalapps_pulsar_Injections
+ * \ingroup lalapps_pulsar_Tools
  * \author R. Prix, M.A. Papa, X. Siemens, B. Allen, C. Messenger
  */
 
@@ -58,6 +58,9 @@
 #include <lal/BinaryPulsarTiming.h>
 #include <lal/Window.h>
 #include <lal/LALString.h>
+#include <lal/LALCache.h>
+#include <lal/Units.h>
+
 
 #include <lal/TransientCW_utils.h>
 #include <lal/CWMakeFakeData.h>
@@ -522,19 +525,16 @@ XLALInitUserVars ( UserVariables_t *uvar, int argc, char *argv[] )
   /* noise */
   XLALRegisterUvarMember ( noiseSFTs, STRING,         'D', OPTIONAL, "Noise-SFTs to be added to signal (Used also to set IFOs and timestamps)");
 
-  XLALRegisterUvarMember (  version, BOOLEAN,            'V', SPECIAL, "Output version information");
-
   /* ----- 'expert-user/developer' options ----- */
   XLALRegisterUvarMember (   randSeed, INT4,            0, DEVELOPER, "Specify random-number seed for reproducible noise (use system time otherwise).");
 
   /* read cmdline & cfgfile  */
   BOOLEAN should_exit = 0;
-  XLAL_CHECK( XLALUserVarReadAllInput( &should_exit, argc, argv ) == XLAL_SUCCESS, XLAL_EFUNC );
+  XLAL_CHECK( XLALUserVarReadAllInput( &should_exit, argc, argv, lalAppsVCSInfoList ) == XLAL_SUCCESS, XLAL_EFUNC );
   if ( should_exit ) {
     exit (1);
   }
 
-
   return XLAL_SUCCESS;
 
 } /* XLALInitUserVars() */
diff --git a/src/Makefile.am b/src/Makefile.am
index 392ef4c0a2e00af049c12ce53ec3a7e0bd7203b7..45f66849bbfe7610ce99b5a6dec4c6ae5da8f74a 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -3,7 +3,6 @@ SUBDIRS = GoodiesAndClones \
 	FollowUp/AfterMath
 
 if NOMAD
-SUBDIRS += SearchOptimization \
-	FollowUp/Nomad
+SUBDIRS += FollowUp/Nomad
 endif
 
diff --git a/src/SearchOptimization/Makefile.am b/src/attic/SearchOptimization/Makefile.am
similarity index 100%
rename from src/SearchOptimization/Makefile.am
rename to src/attic/SearchOptimization/Makefile.am
diff --git a/src/SearchOptimization/SSDOptimize.cpp b/src/attic/SearchOptimization/SSDOptimize.cpp
similarity index 100%
rename from src/SearchOptimization/SSDOptimize.cpp
rename to src/attic/SearchOptimization/SSDOptimize.cpp
diff --git a/src/SearchOptimization/SSDOptimize.h b/src/attic/SearchOptimization/SSDOptimize.h
similarity index 100%
rename from src/SearchOptimization/SSDOptimize.h
rename to src/attic/SearchOptimization/SSDOptimize.h
diff --git a/src/SearchOptimization/SSDOptimizeEDS.cpp b/src/attic/SearchOptimization/SSDOptimizeEDS.cpp
similarity index 100%
rename from src/SearchOptimization/SSDOptimizeEDS.cpp
rename to src/attic/SearchOptimization/SSDOptimizeEDS.cpp
diff --git a/src/SearchOptimization/SSDOptimizeEDS.h b/src/attic/SearchOptimization/SSDOptimizeEDS.h
similarity index 100%
rename from src/SearchOptimization/SSDOptimizeEDS.h
rename to src/attic/SearchOptimization/SSDOptimizeEDS.h
diff --git a/src/lalapps/lalapps.h b/src/lalapps/lalapps.h
index 408f32edd8ed8c5c129ae189888f1ac58f168eb5..213ef05eb710047294dab83650dac9e9e93c950f 100644
--- a/src/lalapps/lalapps.h
+++ b/src/lalapps/lalapps.h
@@ -23,6 +23,7 @@
 #include <config.h>
 #include <stdio.h>
 #include <lal/LALDatatypes.h>
+#include <LALAppsVCSInfo.h>
 
 #if defined(__cplusplus)
 extern "C" {