Index: trunk/ippTools/src/regtoolConfig.c
===================================================================
--- trunk/ippTools/src/regtoolConfig.c	(revision 17585)
+++ trunk/ippTools/src/regtoolConfig.c	(revision 17591)
@@ -30,4 +30,6 @@
 #include "regtool.h"
 
+#define ADD_OPT(TYPE,TARG,NAME,COMMENT,DEFAULT) psMetadataAdd##TYPE(TARG, PS_LIST_TAIL, NAME, 0, COMMENT, DEFAULT)	
+
 pxConfig *regtoolConfig(pxConfig *config, int argc, char **argv)
 {
@@ -50,103 +52,86 @@
 // support for this options is unimplemented
 #if 0
-    psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-exp_id",  0,
-        "search by exposure ID", NULL);
-    psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-class",  0,
-        "search by class", NULL);
-    psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-class_id",  0,
-        "search by class ID", NULL);
+    ADD_OPT(Str,  pendingimfileArgs, "-exp_id",    "search by exposure ID", NULL);
+    ADD_OPT(Str,  pendingimfileArgs, "-class",     "search by class",       NULL);
+    ADD_OPT(Str,  pendingimfileArgs, "-class_id",  "search by class ID",    NULL);
 #endif
-    psMetadataAddU64(pendingimfileArgs, PS_LIST_TAIL, "-limit",  0,
-        "limit result set to N items", 0);
-    psMetadataAddBool(pendingimfileArgs, PS_LIST_TAIL, "-simple",  0,
-        "use the simple output format", false);
+    ADD_OPT(U64,  pendingimfileArgs, "-limit",     "limit result set to N items",  0);
+    ADD_OPT(Bool, pendingimfileArgs, "-simple",    "use the simple output format", false);
 
     // -addprocessedimfile
     psMetadata *addprocessedimfileArgs = psMetadataAlloc();
-    psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-exp_id",         0, "define exposure ID (required)", NULL);
-    psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-exp_name",       0, "define the exp_name (required)", NULL); 
-    psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-inst",           0, "define the camera name (required)", NULL);
-    psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-telescope",      0, "define the telescope name (required)", NULL);
-    psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-tmp_class_id",   0, "define temp. class ID (required)", NULL);
-    psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-class_id",       0, "define class ID (required)", NULL);
-    psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-uri",            0, "define URI (required)", NULL);
-    psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-exp_type",       0, "define exposure type", NULL);
-    psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-filelevel",      0, "define filelevel", NULL);
-    psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-filter",         0, "define filter ", NULL);
-    psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-comment",        0, "define comment ", NULL);
-    psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-airmass",        0, "define airmass", NAN);
-    psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-ra",             0, "define RA", NAN);
-    psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-decl",           0, "define DEC", NAN);
-    psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-exp_time",       0, "define exposure time", NAN);
-    psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-sat_pixel_frac", 0, "define fraction of saturated pixels", NAN);
-    psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-bg",             0, "define exposue background", NAN);
-    psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-bg_stdev",       0, "define exposue background stdev", NAN);
-    psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-bg_mean_stdev",  0, "define exposue background mean stdev", NAN);
-    psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-alt",  	      0, "define altitute", NAN);
-    psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-az",   	      0, "define azimuth", NAN);
-    psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-ccd_temp",       0, "define ccd tempature", NAN);
-    psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-posang", 	      0, "define rotator position angle", NAN);
-    psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-m1_x",   	      0, "define M1 X position", NAN);
-    psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-m1_y",   	      0, "define M1 Y position", NAN);
-    psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-m1_z",   	      0, "define M1 Z position", NAN);
-    psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-m1_tip", 	      0, "define M1 TIP position", NAN);
-    psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-m1_tilt",	      0, "define M1 TILT position", NAN);
-    psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-m2_x",   	      0, "define M2 X position", NAN);
-    psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-m2_y",   	      0, "define M2 Y position", NAN);
-    psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-m2_z",   	      0, "define M2 Z position", NAN);
-    psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-m2_tip", 	      0, "define M2 TIP position", NAN);
-    psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-m2_tilt",	      0, "define M2 TILT position", NAN);
-    psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-env_temperature",0, "define Environmental Temperature", NAN);
-    psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-env_humidity",   0, "define Environmental Humidity", NAN);
-    psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-env_wind_speed", 0, "define Environmental Wind Speed", NAN);
-    psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-env_wind_dir",   0, "define Environmental Wind Direction", NAN);
-    psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-teltemp_m1",     0, "define Telescope Temperature : M1", NAN);
-    psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-teltemp_m1cell", 0, "define Telescope Temperature : M1 Cell", NAN);
-    psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-teltemp_m2",     0, "define Telescope Temperature : M2", NAN);
-    psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-teltemp_spider", 0, "define Telescope Temperature : Spider", NAN);
-    psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-teltemp_truss",  0, "define Telescope Temperature : Truss", NAN);
-    psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-teltemp_extra",  0, "define Telescope Temperature : Extra", NAN);
-    psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-pon_time",	      0, "define time to last Power On", NAN);
-    psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-user_1",  	      0, "define user statistic (1)", NAN);
-    psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-user_2",  	      0, "define user statistic (2)", NAN);
-    psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-user_3",  	      0, "define user statistic (3)", NAN);
-    psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-user_4",  	      0, "define user statistic (4)", NAN);
-    psMetadataAddF64(addprocessedimfileArgs, PS_LIST_TAIL, "-user_5",  	      0, "define user statistic (5)", NAN);
-    psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-object",  	      0, "define exposure object", NULL);
-    psMetadataAddTime(addprocessedimfileArgs, PS_LIST_TAIL, "-dateobs",	      0, "define observation time", NULL);
-    psMetadataAddS16(addprocessedimfileArgs, PS_LIST_TAIL, "-code",    	      0, "set fault code", 0);
+    ADD_OPT(Str,  addprocessedimfileArgs, "-exp_id",         "define exposure ID (required)",		NULL);
+    ADD_OPT(Str,  addprocessedimfileArgs, "-exp_name",       "define the exp_name (required)", 		NULL); 
+    ADD_OPT(Str,  addprocessedimfileArgs, "-inst",           "define the camera name (required)", 	NULL);
+    ADD_OPT(Str,  addprocessedimfileArgs, "-telescope",      "define the telescope name (required)", 	NULL);
+    ADD_OPT(Str,  addprocessedimfileArgs, "-tmp_class_id",   "define temp. class ID (required)", 	NULL);
+    ADD_OPT(Str,  addprocessedimfileArgs, "-class_id",       "define class ID (required)", 		NULL);
+    ADD_OPT(Str,  addprocessedimfileArgs, "-uri",            "define URI (required)", 			NULL);
+    ADD_OPT(Str,  addprocessedimfileArgs, "-exp_type",       "define exposure type", 			NULL);
+    ADD_OPT(Str,  addprocessedimfileArgs, "-filelevel",      "define filelevel", 			NULL);
+    ADD_OPT(Str,  addprocessedimfileArgs, "-filter",         "define filter ", 				NULL);
+    ADD_OPT(Str,  addprocessedimfileArgs, "-comment",        "define comment ", 			NULL);
+    ADD_OPT(F32,  addprocessedimfileArgs, "-airmass",        "define airmass", 				NAN);
+    ADD_OPT(F64,  addprocessedimfileArgs, "-ra",             "define RA", 				NAN);
+    ADD_OPT(F64,  addprocessedimfileArgs, "-decl",           "define DEC", 				NAN);
+    ADD_OPT(F32,  addprocessedimfileArgs, "-exp_time",       "define exposure time", 			NAN);
+    ADD_OPT(F32,  addprocessedimfileArgs, "-sat_pixel_frac", "define fraction of saturated pixels", 	NAN);
+    ADD_OPT(F64,  addprocessedimfileArgs, "-bg",             "define exposue background",  		NAN);
+    ADD_OPT(F64,  addprocessedimfileArgs, "-bg_stdev",       "define exposue background stdev", 	NAN);
+    ADD_OPT(F64,  addprocessedimfileArgs, "-bg_mean_stdev",  "define exposue background mean stdev", 	NAN);
+    ADD_OPT(F64,  addprocessedimfileArgs, "-alt",            "define altitute", 	     		NAN);
+    ADD_OPT(F64,  addprocessedimfileArgs, "-az",             "define azimuth", 		     		NAN);
+    ADD_OPT(F32,  addprocessedimfileArgs, "-ccd_temp",       "define ccd tempature", 	   		NAN);
+    ADD_OPT(F64,  addprocessedimfileArgs, "-posang",         "define rotator position angle", 		NAN);
+    ADD_OPT(F32,  addprocessedimfileArgs, "-m1_x",           "define M1 X position", 	   		NAN);
+    ADD_OPT(F32,  addprocessedimfileArgs, "-m1_y",           "define M1 Y position", 	   		NAN);
+    ADD_OPT(F32,  addprocessedimfileArgs, "-m1_z",           "define M1 Z position", 	   		NAN);
+    ADD_OPT(F32,  addprocessedimfileArgs, "-m1_tip",         "define M1 TIP position", 	   		NAN);
+    ADD_OPT(F32,  addprocessedimfileArgs, "-m1_tilt",        "define M1 TILT position",    		NAN);
+    ADD_OPT(F32,  addprocessedimfileArgs, "-m2_x",           "define M2 X position", 	   		NAN);
+    ADD_OPT(F32,  addprocessedimfileArgs, "-m2_y",           "define M2 Y position", 	   		NAN);
+    ADD_OPT(F32,  addprocessedimfileArgs, "-m2_z",           "define M2 Z position", 	   		NAN);
+    ADD_OPT(F32,  addprocessedimfileArgs, "-m2_tip",         "define M2 TIP position", 	   		NAN);
+    ADD_OPT(F32,  addprocessedimfileArgs, "-m2_tilt",        "define M2 TILT position", 		NAN);
+    ADD_OPT(F32,  addprocessedimfileArgs, "-env_temperature","define Environmental Temperature", 	NAN);
+    ADD_OPT(F32,  addprocessedimfileArgs, "-env_humidity",   "define Environmental Humidity", 		NAN);
+    ADD_OPT(F32,  addprocessedimfileArgs, "-env_wind_speed", "define Environmental Wind Speed", 	NAN);
+    ADD_OPT(F32,  addprocessedimfileArgs, "-env_wind_dir",   "define Environmental Wind Direction", 	NAN);
+    ADD_OPT(F32,  addprocessedimfileArgs, "-teltemp_m1",     "define Telescope Temperature : M1", 	NAN);
+    ADD_OPT(F32,  addprocessedimfileArgs, "-teltemp_m1cell", "define Telescope Temperature : M1 Cell", 	NAN);
+    ADD_OPT(F32,  addprocessedimfileArgs, "-teltemp_m2",     "define Telescope Temperature : M2", 	NAN);
+    ADD_OPT(F32,  addprocessedimfileArgs, "-teltemp_spider", "define Telescope Temperature : Spider", 	NAN);
+    ADD_OPT(F32,  addprocessedimfileArgs, "-teltemp_truss",  "define Telescope Temperature : Truss", 	NAN);
+    ADD_OPT(F32,  addprocessedimfileArgs, "-teltemp_extra",  "define Telescope Temperature : Extra", 	NAN);
+    ADD_OPT(F32,  addprocessedimfileArgs, "-pon_time",       "define time to last Power On", 		NAN);
+    ADD_OPT(F64,  addprocessedimfileArgs, "-user_1",         "define user statistic (1)", 		NAN);
+    ADD_OPT(F64,  addprocessedimfileArgs, "-user_2",         "define user statistic (2)", 		NAN);
+    ADD_OPT(F64,  addprocessedimfileArgs, "-user_3",         "define user statistic (3)", 		NAN);
+    ADD_OPT(F64,  addprocessedimfileArgs, "-user_4",         "define user statistic (4)", 		NAN);
+    ADD_OPT(F64,  addprocessedimfileArgs, "-user_5",         "define user statistic (5)", 		NAN);
+    ADD_OPT(Str,  addprocessedimfileArgs, "-object",         "define exposure object", 			NULL);
+    ADD_OPT(Time, addprocessedimfileArgs, "-dateobs",        "define observation time", 		NULL);
+    ADD_OPT(S16,  addprocessedimfileArgs, "-code",           "set fault code", 	 			0);
 
     // -processedimfile
     psMetadata *processedimfileArgs = psMetadataAlloc();
-    psMetadataAddStr(processedimfileArgs, PS_LIST_TAIL, "-exp_id",  0,
-        "search by exposure ID", NULL);
-    psMetadataAddStr(processedimfileArgs, PS_LIST_TAIL, "-class_id",  0,
-        "search by class ID", NULL);
-    psMetadataAddU64(processedimfileArgs, PS_LIST_TAIL, "-limit",  0,
-        "limit result set to N items", 0);
-    psMetadataAddBool(processedimfileArgs, PS_LIST_TAIL, "-faulted",  0,
-        "only return imfiles with a fault status set", false);
-    psMetadataAddBool(processedimfileArgs, PS_LIST_TAIL, "-simple",  0,
-        "use the simple output format", false);
+   ADD_OPT(Str,  processedimfileArgs, "-exp_id",    "search by exposure ID",		           NULL);
+   ADD_OPT(Str,  processedimfileArgs, "-class_id",  "search by class ID", 		           NULL);
+   ADD_OPT(U64,  processedimfileArgs, "-limit",     "limit result set to N items",		   0);
+   ADD_OPT(Bool, processedimfileArgs, "-faulted",   "only return imfiles with a fault status set", false);
+   ADD_OPT(Bool, processedimfileArgs, "-simple",    "use the simple output format",   	     	   false);
 
     // -revertprocessedimfile
     psMetadata *revertprocessedimfileArgs = psMetadataAlloc();
-    psMetadataAddStr(revertprocessedimfileArgs, PS_LIST_TAIL, "-exp_id",  0,
-            "search by exposure ID (required)", NULL);
-    psMetadataAddStr(revertprocessedimfileArgs, PS_LIST_TAIL, "-tmp_class_id",  0,
-            "searcy by temp. class ID", NULL);
-    psMetadataAddStr(revertprocessedimfileArgs, PS_LIST_TAIL, "-class_id",  0,
-            "search by class ID", NULL);
-    psMetadataAddS16(revertprocessedimfileArgs, PS_LIST_TAIL, "-code",  0,
-            "search by fault code", 0);
+    ADD_OPT(Str, revertprocessedimfileArgs, "-exp_id",        "search by exposure ID (required)", NULL);
+    ADD_OPT(Str, revertprocessedimfileArgs, "-tmp_class_id",  "searcy by temp. class ID", NULL);
+    ADD_OPT(Str, revertprocessedimfileArgs, "-class_id",      "search by class ID", NULL);
+    ADD_OPT(S16, revertprocessedimfileArgs, "-code",          "search by fault code", 0);
 
     // -updateprocessedimfile
     psMetadata *updateprocessedimfileArgs = psMetadataAlloc();
-    psMetadataAddStr(updateprocessedimfileArgs, PS_LIST_TAIL, "-exp_id",  0,
-        "search by exposure ID", NULL);
-    psMetadataAddStr(updateprocessedimfileArgs, PS_LIST_TAIL, "-class_id",  0,
-        "search by class ID", NULL);
-    psMetadataAddS16(updateprocessedimfileArgs, PS_LIST_TAIL, "-code",  0,
-        "set fault code (required)", INT16_MAX);
+    ADD_OPT(Str, updateprocessedimfileArgs, "-exp_id",        "search by exposure ID", NULL);
+    ADD_OPT(Str, updateprocessedimfileArgs, "-class_id",      "search by class ID", NULL);
+    ADD_OPT(S16, updateprocessedimfileArgs, "-code",          "set fault code (required)", INT16_MAX);
 
     // -pendingexp
@@ -154,145 +139,81 @@
 // support for these options in unimplemented
 #if 0
-    psMetadataAddStr(pendingexpArgs, PS_LIST_TAIL, "-exp_id",  0,
-        "search by exposure ID", NULL);
-    psMetadataAddStr(pendingexpArgs, PS_LIST_TAIL, "-inst",  0,
-        "search by camera", NULL);
-    psMetadataAddStr(pendingexpArgs, PS_LIST_TAIL, "-telescope",  0,
-        "search by telescope", NULL);
-    psMetadataAddStr(pendingexpArgs, PS_LIST_TAIL, "-exp_type",  0,
-        "search by exposure type", NULL);
+    psMetadataAddStr(pendingexpArgs, PS_LIST_TAIL, "-exp_id",   0,        "search by exposure ID", NULL);
+    psMetadataAddStr(pendingexpArgs, PS_LIST_TAIL, "-inst",     0,        "search by camera", NULL);
+    psMetadataAddStr(pendingexpArgs, PS_LIST_TAIL, "-telescope",0,        "search by telescope", NULL);
+    psMetadataAddStr(pendingexpArgs, PS_LIST_TAIL, "-exp_type", 0,        "search by exposure type", NULL);
 #endif
-    psMetadataAddU64(pendingexpArgs, PS_LIST_TAIL, "-limit",  0,
-        "limit result set to N items", 0);
-    psMetadataAddBool(pendingexpArgs, PS_LIST_TAIL, "-simple",  0,
-        "use the simple output format", false);
+    psMetadataAddU64(pendingexpArgs, PS_LIST_TAIL, "-limit",    0,        "limit result set to N items", 0);
+    psMetadataAddBool(pendingexpArgs, PS_LIST_TAIL, "-simple",  0,        "use the simple output format", false);
 
     // -addprocessedexp
     psMetadata *addprocessedexpArgs = psMetadataAlloc();
-    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-exp_id",  0,
-        "exp_id to operate on (required)", NULL); 
-    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-exp_name",  0,
-        "define the exp_name (required)", NULL); 
-    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-inst",  0,
-        "define the camera name (required)", NULL);
-    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-telescope",  0,
-        "define the telescope name (required)", NULL);
-    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-exp_tag",  0,
-        "define the external exposure tag name (required)", NULL);
-    psMetadataAddTime(addprocessedexpArgs, PS_LIST_TAIL, "-dateobs",  0,
-        "define observation time", NULL);
-    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-exp_type",  0,
-        "define exposure type", NULL);
-    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-filelevel",  0,
-        "define the data partitioning level of this file", NULL);
-    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-workdir",  0,
-        "define the \"default\" workdir for this exposure", NULL);
-    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-dvodb",  0,
-        "define the dvodb for the next processing step", NULL);
-    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-tess_id",  0,
-        "define the tess_id for the next processing step", NULL);
-    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-end_stage",  0,
-        "define the end goal processing step", NULL);
-    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-reduction",  0,
-        "define the \"default\" reduction class for this exposure", NULL);
-    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-filter",  0,
-        "define filter ", NULL);
-    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-comment",  0,
-        "define comment ", NULL);
-    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-airmass",  0,
-        "define airmass", NAN);
-    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-ra",  0,
-        "define RA", NAN);
-    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-decl",  0,
-        "define DEC", NAN);
-    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-exp_time",  0,
-        "define exposure time", NAN);
-    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-sat_pixel_frac",  0,
-        "define fraction of saturated pixels", NAN);
-    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-bg",  0,
-        "define exposue background", NAN);
-    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-bg_stdev",  0,
-        "define exposue background stdev", NAN);
-    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-bg_mean_stdev",  0,
-        "define exposue background mean stdev", NAN);
-    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-alt",  0,
-        "define altitute", NAN);
-    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-az",  0,
-        "define azimuth", NAN);
-    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-ccd_temp",  0,
-        "define ccd tempature", NAN);
-    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-posang",  0,
-        "define rotator position angle", NAN);
-    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m1_x",  0,
-            "define M1 X position", NAN);
-    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m1_y",  0,
-            "define M1 Y position", NAN);
-    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m1_z",  0,
-            "define M1 Z position", NAN);
-    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m1_tip",  0,
-            "define M1 TIP position", NAN);
-    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m1_tilt",  0,
-            "define M1 TILT position", NAN);
-    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m2_x",  0,
-            "define M2 X position", NAN);
-    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m2_y",  0,
-            "define M2 Y position", NAN);
-    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m2_z",  0,
-            "define M2 Z position", NAN);
-    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m2_tip",  0,
-            "define M2 TIP position", NAN);
-    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m2_tilt",  0,
-            "define M2 TILT position", NAN);
-    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-env_temperature",  0,
-            "define Environmental Temperature", NAN);
-    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-env_humidity",  0,
-            "define Environmental Humidity", NAN);
-    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-env_wind_speed",  0,
-            "define Environmental Wind Speed", NAN);
-    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-env_wind_dir",  0,
-            "define Environmental Wind Direction", NAN);
-    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-teltemp_m1",  0,
-            "define Telescope Temperature : M1", NAN);
-    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-teltemp_m1cell",  0,
-            "define Telescope Temperature : M1 Cell", NAN);
-    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-teltemp_m2",  0,
-            "define Telescope Temperature : M2", NAN);
-    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-teltemp_spider",  0,
-            "define Telescope Temperature : Spider", NAN);
-    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-teltemp_truss",  0,
-            "define Telescope Temperature : Truss", NAN);
-    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-teltemp_extra",  0,
-            "define Telescope Temperature : Extra", NAN);
-    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-pon_time",  0,
-            "define time to last Power On", NAN);
-    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-user_1",  0,
-            "define user statistic (1)", NAN);
-    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-user_2",  0,
-            "define user statistic (2)", NAN);
-    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-user_3",  0,
-            "define user statistic (3)", NAN);
-    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-user_4",  0,
-            "define user statistic (4)", NAN);
-    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-user_5",  0,
-            "define user statistic (5)", NAN);
-    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-object",  0,
-        "define exposure object", NULL);
-    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-label",  0,
-        "define label for chip stage (non-detrend data only)", NULL);
-    psMetadataAddS16(addprocessedexpArgs, PS_LIST_TAIL, "-code",  0,
-        "set fault code", 0);
+    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-exp_id",           0,        "exp_id to operate on (required)", NULL); 
+    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-exp_name",         0,        "define the exp_name (required)", NULL); 
+    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-inst",             0,        "define the camera name (required)", NULL);
+    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-telescope",        0,        "define the telescope name (required)", NULL);
+    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-exp_tag",          0,        "define the external exposure tag name (required)", NULL);
+    psMetadataAddTime(addprocessedexpArgs, PS_LIST_TAIL, "-dateobs",         0,        "define observation time", NULL);
+    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-exp_type",         0,        "define exposure type", NULL);
+    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-filelevel",        0,        "define the data partitioning level of this file", NULL);
+    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-workdir",          0,        "define the \"default\" workdir for this exposure", NULL);
+    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-dvodb",            0,        "define the dvodb for the next processing step", NULL);
+    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-tess_id",          0,        "define the tess_id for the next processing step", NULL);
+    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-end_stage",        0,        "define the end goal processing step", NULL);
+    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-reduction",        0,        "define the \"default\" reduction class for this exposure", NULL);
+    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-filter",           0,        "define filter ", NULL);
+    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-comment",          0,        "define comment ", NULL);
+    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-airmass",          0,        "define airmass", NAN);
+    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-ra",               0,        "define RA", NAN);
+    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-decl",             0,        "define DEC", NAN);
+    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-exp_time",         0,        "define exposure time", NAN);
+    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-sat_pixel_frac",   0,        "define fraction of saturated pixels", NAN);
+    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-bg",               0,        "define exposue background", NAN);
+    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-bg_stdev",         0,        "define exposue background stdev", NAN);
+    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-bg_mean_stdev",    0,        "define exposue background mean stdev", NAN);
+    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-alt",              0,        "define altitute", NAN);
+    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-az",               0,        "define azimuth", NAN);
+    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-ccd_temp",         0,        "define ccd tempature", NAN);
+    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-posang",           0,        "define rotator position angle", NAN);
+    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m1_x",             0,        "define M1 X position", NAN);
+    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m1_y",             0,        "define M1 Y position", NAN);
+    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m1_z",             0,        "define M1 Z position", NAN);
+    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m1_tip",           0,        "define M1 TIP position", NAN);
+    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m1_tilt",          0,        "define M1 TILT position", NAN);
+    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m2_x",             0,        "define M2 X position", NAN);
+    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m2_y",             0,        "define M2 Y position", NAN);
+    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m2_z",             0,        "define M2 Z position", NAN);
+    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m2_tip",           0,        "define M2 TIP position", NAN);
+    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-m2_tilt",          0,        "define M2 TILT position", NAN);
+    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-env_temperature",  0,        "define Environmental Temperature", NAN);
+    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-env_humidity",     0,        "define Environmental Humidity", NAN);
+    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-env_wind_speed",   0,        "define Environmental Wind Speed", NAN);
+    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-env_wind_dir",     0,        "define Environmental Wind Direction", NAN);
+    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-teltemp_m1",       0,        "define Telescope Temperature : M1", NAN);
+    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-teltemp_m1cell",   0,        "define Telescope Temperature : M1 Cell", NAN);
+    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-teltemp_m2",       0,        "define Telescope Temperature : M2", NAN);
+    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-teltemp_spider",   0,        "define Telescope Temperature : Spider", NAN);
+    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-teltemp_truss",    0,        "define Telescope Temperature : Truss", NAN);
+    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-teltemp_extra",    0,        "define Telescope Temperature : Extra", NAN);
+    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-pon_time",         0,        "define time to last Power On", NAN);
+    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-user_1",           0,        "define user statistic (1)", NAN);
+    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-user_2",           0,        "define user statistic (2)", NAN);
+    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-user_3",           0,        "define user statistic (3)", NAN);
+    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-user_4",           0,        "define user statistic (4)", NAN);
+    psMetadataAddF64(addprocessedexpArgs, PS_LIST_TAIL, "-user_5",           0,        "define user statistic (5)", NAN);
+    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-object",           0,        "define exposure object", NULL);
+    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-label",            0,        "define label for chip stage (non-detrend data only)", NULL);
+    psMetadataAddS16(addprocessedexpArgs, PS_LIST_TAIL, "-code",             0,        "set fault code", 0);
     /*
-    psMetadataAddStr(updateArgs, PS_LIST_TAIL, "-recip",  0,
-        "define URL", NULL);
-    psMetadataAddStr(updateArgs, PS_LIST_TAIL, "-mosiac",  0,
-        "define URL", NULL);
+    psMetadataAddStr(updateArgs, PS_LIST_TAIL, "-recip",  0,        "define URL", NULL);
+    psMetadataAddStr(updateArgs, PS_LIST_TAIL, "-mosiac",  0,        "define URL", NULL);
     */
 
     // -processedexp
     psMetadata *processedexpArgs = psMetadataAlloc();
-    psMetadataAddStr(processedexpArgs,  PS_LIST_TAIL, "-exp_id",     	0,            "search by exposure ID", NULL);
-    psMetadataAddStr(processedexpArgs,  PS_LIST_TAIL, "-exp_name",   	0,            "search by exp_name", NULL);
-    psMetadataAddStr(processedexpArgs,  PS_LIST_TAIL, "-inst",       	0,            "search for camera", NULL);
-    psMetadataAddStr(processedexpArgs,  PS_LIST_TAIL, "-telescope",  	0,            "search for telescope", NULL);
+    psMetadataAddStr(processedexpArgs,  PS_LIST_TAIL, "-exp_id",        0,            "search by exposure ID", NULL);
+    psMetadataAddStr(processedexpArgs,  PS_LIST_TAIL, "-exp_name",      0,            "search by exp_name", NULL);
+    psMetadataAddStr(processedexpArgs,  PS_LIST_TAIL, "-inst",          0,            "search for camera", NULL);
+    psMetadataAddStr(processedexpArgs,  PS_LIST_TAIL, "-telescope",     0,            "search for telescope", NULL);
     psMetadataAddTime(processedexpArgs, PS_LIST_TAIL, "-dateobs_begin", 0,            "search for exposures by time (>=)", NULL);
     psMetadataAddTime(processedexpArgs, PS_LIST_TAIL, "-dateobs_end",   0,            "search for exposures by time (<)", NULL);
@@ -305,51 +226,43 @@
     psMetadataAddF32(processedexpArgs,  PS_LIST_TAIL, "-airmass_max",   0,            "search by max airmass", NAN);
     psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-ra_min",        0,            "search by min", NAN);
-    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-ra_max",    	0,            "search by max", NAN);
-    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-decl_min",  	0,            "search by min", NAN);
-    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-decl_max",  	0,            "search by max", NAN);
+    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-ra_max",        0,            "search by max", NAN);
+    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-decl_min",      0,            "search by min", NAN);
+    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-decl_max",      0,            "search by max", NAN);
     psMetadataAddF32(processedexpArgs,  PS_LIST_TAIL, "-exp_time_min",  0,            "search by min", NAN);
     psMetadataAddF32(processedexpArgs,  PS_LIST_TAIL, "-exp_time_max",  0,            "search by max", NAN);
     psMetadataAddF32(processedexpArgs,  PS_LIST_TAIL, "-sat_pixel_frac_min",  0,      "search by max fraction of saturated pixels", NAN);
     psMetadataAddF32(processedexpArgs,  PS_LIST_TAIL, "-sat_pixel_frac_max",  0,      "search by min fraction of saturated pixels", NAN);
-    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-bg_min",  	0,            "search by max", NAN);
-    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-bg_max",  	0,            "search by max", NAN);
+    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-bg_min",        0,            "search by max", NAN);
+    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-bg_max",        0,            "search by max", NAN);
     psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-bg_stdev_min",  0,            "search by max", NAN);
     psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-bg_stdev_max",  0,            "search by max", NAN);
     psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-bg_mean_stdev_min",  0,       "search by max", NAN);
     psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-bg_mean_stdev_max",  0,       "search by max", NAN);
-    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-alt_min", 	0,            "search by min", NAN);
-    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-alt_max", 	0,            "search by max", NAN);
-    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-az_min",  	0,            "search by min", NAN);
-    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-az_max",  	0,            "search by max", NAN);
+    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-alt_min",       0,            "search by min", NAN);
+    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-alt_max",       0,            "search by max", NAN);
+    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-az_min",        0,            "search by min", NAN);
+    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-az_max",        0,            "search by max", NAN);
     psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-ccd_temp_min",  0,            "search by min ccd tempature", NAN);
     psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-ccd_temp_max",  0,            "search by max ccd tempature", NAN);
-    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-posang_min",  	0,            "search by min rotator position angle", NAN);
-    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-posang_max",  	0,            "search by max rotator position angle", NAN);
-    psMetadataAddStr(processedexpArgs,  PS_LIST_TAIL, "-object",      	0,            "search by exposure object", NULL);
-    psMetadataAddF32(processedexpArgs,  PS_LIST_TAIL, "-solang_min",  	0,            "define min solar angle", NAN);
-    psMetadataAddF32(processedexpArgs,  PS_LIST_TAIL, "-solang_max",  	0,            "define max solar angle", NAN);
-
-    psMetadataAddU64(processedexpArgs, PS_LIST_TAIL, "-limit",  0,
-        "limit result set to N items", 0);
-    psMetadataAddBool(processedexpArgs, PS_LIST_TAIL, "-faulted",  0,
-        "only return imfiles with a fault status set", false);
-    psMetadataAddBool(processedexpArgs, PS_LIST_TAIL, "-simple",  0,
-        "use the simple output format", false);
+    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-posang_min",    0,            "search by min rotator position angle", NAN);
+    psMetadataAddF64(processedexpArgs,  PS_LIST_TAIL, "-posang_max",    0,            "search by max rotator position angle", NAN);
+    psMetadataAddStr(processedexpArgs,  PS_LIST_TAIL, "-object",        0,            "search by exposure object", NULL);
+    psMetadataAddF32(processedexpArgs,  PS_LIST_TAIL, "-solang_min",    0,            "define min solar angle", NAN);
+    psMetadataAddF32(processedexpArgs,  PS_LIST_TAIL, "-solang_max",    0,            "define max solar angle", NAN);
+
+    psMetadataAddU64(processedexpArgs,  PS_LIST_TAIL, "-limit",         0,            "limit result set to N items", 0);
+    psMetadataAddBool(processedexpArgs, PS_LIST_TAIL, "-faulted",       0,            "only return imfiles with a fault status set", false);
+    psMetadataAddBool(processedexpArgs, PS_LIST_TAIL, "-simple",        0,            "use the simple output format", false);
 
     // -revertprocessedexp
     psMetadata *revertprocessedexpArgs = psMetadataAlloc();
-    psMetadataAddStr(revertprocessedexpArgs, PS_LIST_TAIL, "-exp_id",  0,
-            "search by exposure ID (required)", NULL);
-    psMetadataAddS16(revertprocessedexpArgs, PS_LIST_TAIL, "-code",  0,
-            "search by fault code", 0);
+    psMetadataAddStr(revertprocessedexpArgs, PS_LIST_TAIL, "-exp_id",   0,            "search by exposure ID (required)", NULL);
+    psMetadataAddS16(revertprocessedexpArgs, PS_LIST_TAIL, "-code",     0,            "search by fault code", 0);
 
     // -updatedprocessedexp
     psMetadata *updatedprocessedexpArgs = psMetadataAlloc();
-    psMetadataAddStr(updatedprocessedexpArgs, PS_LIST_TAIL, "-exp_id",  0,
-        "search by exposure ID", NULL);
-    psMetadataAddS16(updatedprocessedexpArgs, PS_LIST_TAIL, "-code",  0,
-        "set fault code (required)", INT16_MAX);
+    psMetadataAddStr(updatedprocessedexpArgs, PS_LIST_TAIL, "-exp_id",  0,            "search by exposure ID", NULL);
+    psMetadataAddS16(updatedprocessedexpArgs, PS_LIST_TAIL, "-code",    0,            "set fault code (required)", INT16_MAX);
     
-
     psMetadata *argSets = psMetadataAlloc();
     psMetadata *modes = psMetadataAlloc();
