Index: /trunk/ippdb/configure.ac
===================================================================
--- /trunk/ippdb/configure.ac	(revision 8282)
+++ /trunk/ippdb/configure.ac	(revision 8283)
@@ -1,5 +1,5 @@
 AC_PREREQ(2.59)
 
-AC_INIT([ippdb], [0.0.24], [pan-starrs.ifa.hawaii.edu])
+AC_INIT([ippdb], [0.0.25], [pan-starrs.ifa.hawaii.edu])
 AC_CONFIG_SRCDIR([ippdb.pc.in])
 
Index: /trunk/ippdb/src/ippdb.c
===================================================================
--- /trunk/ippdb/src/ippdb.c	(revision 8282)
+++ /trunk/ippdb/src/ippdb.c	(revision 8283)
@@ -5501,5 +5501,5 @@
         return false;
     }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_id", 0, "Key", "64")) {
+    if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_id", 0, "Primary Key", "64")) {
         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id");
         psFree(md);
@@ -5521,5 +5521,5 @@
         return false;
     }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "class_id", 0, NULL, "64")) {
+    if (!psMetadataAddStr(md, PS_LIST_TAIL, "class_id", 0, "Primary Key", "64")) {
         psError(PS_ERR_UNKNOWN, false, "failed to add item class_id");
         psFree(md);
@@ -6519,5 +6519,5 @@
         return false;
     }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "class", 0, "Primary Key", "64")) {
+    if (!psMetadataAddStr(md, PS_LIST_TAIL, "class", 0, NULL, "64")) {
         psError(PS_ERR_UNKNOWN, false, "failed to add item class");
         psFree(md);
@@ -6944,5 +6944,5 @@
 static void rawDetrendExpRowFree(rawDetrendExpRow *object);
 
-rawDetrendExpRow *rawDetrendExpRowAlloc(const char *exp_id, const char *camera, const char *telescope, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 background)
+rawDetrendExpRow *rawDetrendExpRowAlloc(const char *exp_id, const char *camera, const char *telescope, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang)
 {
     rawDetrendExpRow *object;
@@ -6961,5 +6961,11 @@
     object->decl = decl;
     object->exp_time = exp_time;
-    object->background = background;
+    object->bg = bg;
+    object->bg_stdev = bg_stdev;
+    object->bg_mean_stdev = bg_mean_stdev;
+    object->alt = alt;
+    object->az = az;
+    object->ccd_temp = ccd_temp;
+    object->posang = posang;
 
     return object;
@@ -7036,6 +7042,36 @@
         return false;
     }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, 0.0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item background");
+    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, 0.0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, 0.0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, 0.0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAddF64(md, PS_LIST_TAIL, "alt", 0, NULL, 0.0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item alt");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAddF64(md, PS_LIST_TAIL, "az", 0, NULL, 0.0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item az");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAddF32(md, PS_LIST_TAIL, "ccd_temp", 0, NULL, 0.0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item ccd_temp");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAddF64(md, PS_LIST_TAIL, "posang", 0, NULL, 0.0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item posang");
         psFree(md);
         return false;
@@ -7054,5 +7090,5 @@
 }
 
-bool rawDetrendExpInsert(psDB * dbh, const char *exp_id, const char *camera, const char *telescope, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 background)
+bool rawDetrendExpInsert(psDB * dbh, const char *exp_id, const char *camera, const char *telescope, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang)
 {
     psMetadata      *md;
@@ -7110,6 +7146,36 @@
         return false;
     }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, background)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item background");
+    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, bg)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, bg_stdev)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, bg_mean_stdev)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAddF64(md, PS_LIST_TAIL, "alt", 0, NULL, alt)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item alt");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAddF64(md, PS_LIST_TAIL, "az", 0, NULL, az)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item az");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAddF32(md, PS_LIST_TAIL, "ccd_temp", 0, NULL, ccd_temp)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item ccd_temp");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAddF64(md, PS_LIST_TAIL, "posang", 0, NULL, posang)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item posang");
         psFree(md);
         return false;
@@ -7136,5 +7202,5 @@
     return deleted;
 }
-bool rawDetrendExpPop(psDB *dbh, char **exp_id, char **camera, char **telescope, char **exp_type, psS32 *imfiles, char **filter, psF32 *airmass, psF64 *ra, psF64 *decl, psF32 *exp_time, psF64 *background)
+bool rawDetrendExpPop(psDB *dbh, char **exp_id, char **camera, char **telescope, char **exp_type, psS32 *imfiles, char **filter, psF32 *airmass, psF64 *ra, psF64 *decl, psF32 *exp_time, psF64 *bg, psF64 *bg_stdev, psF64 *bg_mean_stdev, psF64 *alt, psF64 *az, psF32 *ccd_temp, psF64 *posang)
 {
     psArray         *rowSet;
@@ -7240,7 +7306,43 @@
         return false;
     }
-    *background = psMetadataLookupF64(&status, row, "background");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item background");
+    *bg = psMetadataLookupF64(&status, row, "bg");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg");
+        psFree(row);
+        return false;
+    }
+    *bg_stdev = psMetadataLookupF64(&status, row, "bg_stdev");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_stdev");
+        psFree(row);
+        return false;
+    }
+    *bg_mean_stdev = psMetadataLookupF64(&status, row, "bg_mean_stdev");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_mean_stdev");
+        psFree(row);
+        return false;
+    }
+    *alt = psMetadataLookupF64(&status, row, "alt");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item alt");
+        psFree(row);
+        return false;
+    }
+    *az = psMetadataLookupF64(&status, row, "az");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item az");
+        psFree(row);
+        return false;
+    }
+    *ccd_temp = psMetadataLookupF32(&status, row, "ccd_temp");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ccd_temp");
+        psFree(row);
+        return false;
+    }
+    *posang = psMetadataLookupF64(&status, row, "posang");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item posang");
         psFree(row);
         return false;
@@ -7254,5 +7356,5 @@
 bool rawDetrendExpInsertObject(psDB *dbh, rawDetrendExpRow *object)
 {
-    return rawDetrendExpInsert(dbh, object->exp_id, object->camera, object->telescope, object->exp_type, object->imfiles, object->filter, object->airmass, object->ra, object->decl, object->exp_time, object->background);
+    return rawDetrendExpInsert(dbh, object->exp_id, object->camera, object->telescope, object->exp_type, object->imfiles, object->filter, object->airmass, object->ra, object->decl, object->exp_time, object->bg, object->bg_stdev, object->bg_mean_stdev, object->alt, object->az, object->ccd_temp, object->posang);
 }
 
@@ -7269,12 +7371,18 @@
     psF64           decl;
     psF32           exp_time;
-    psF64           background;
-
-    if (!rawDetrendExpPop(dbh, (char **)&exp_id, (char **)&camera, (char **)&telescope, (char **)&exp_type, &imfiles, (char **)&filter, &airmass, &ra, &decl, &exp_time, &background)) {
+    psF64           bg;
+    psF64           bg_stdev;
+    psF64           bg_mean_stdev;
+    psF64           alt;
+    psF64           az;
+    psF32           ccd_temp;
+    psF64           posang;
+
+    if (!rawDetrendExpPop(dbh, (char **)&exp_id, (char **)&camera, (char **)&telescope, (char **)&exp_type, &imfiles, (char **)&filter, &airmass, &ra, &decl, &exp_time, &bg, &bg_stdev, &bg_mean_stdev, &alt, &az, &ccd_temp, &posang)) {
         psError(PS_ERR_UNKNOWN, false, "failed to pop a database row");
         return NULL;
     }
 
-    return rawDetrendExpRowAlloc(exp_id, camera, telescope, exp_type, imfiles, filter, airmass, ra, decl, exp_time, background);
+    return rawDetrendExpRowAlloc(exp_id, camera, telescope, exp_type, imfiles, filter, airmass, ra, decl, exp_time, bg, bg_stdev, bg_mean_stdev, alt, az, ccd_temp, posang);
 }
 
@@ -7425,6 +7533,36 @@
         return NULL;
     }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, object->background)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item background");
+    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, object->bg)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
+        psFree(md);
+        return NULL;
+    }
+    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, object->bg_stdev)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev");
+        psFree(md);
+        return NULL;
+    }
+    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, object->bg_mean_stdev)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
+        psFree(md);
+        return NULL;
+    }
+    if (!psMetadataAddF64(md, PS_LIST_TAIL, "alt", 0, NULL, object->alt)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item alt");
+        psFree(md);
+        return NULL;
+    }
+    if (!psMetadataAddF64(md, PS_LIST_TAIL, "az", 0, NULL, object->az)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item az");
+        psFree(md);
+        return NULL;
+    }
+    if (!psMetadataAddF32(md, PS_LIST_TAIL, "ccd_temp", 0, NULL, object->ccd_temp)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item ccd_temp");
+        psFree(md);
+        return NULL;
+    }
+    if (!psMetadataAddF64(md, PS_LIST_TAIL, "posang", 0, NULL, object->posang)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item posang");
         psFree(md);
         return NULL;
@@ -7447,5 +7585,11 @@
     psF64           decl;
     psF32           exp_time;
-    psF64           background;
+    psF64           bg;
+    psF64           bg_stdev;
+    psF64           bg_mean_stdev;
+    psF64           alt;
+    psF64           az;
+    psF32           ccd_temp;
+    psF64           posang;
 
     exp_id = psMetadataLookupPtr(&status, md, "exp_id");
@@ -7499,11 +7643,41 @@
         return false;
     }
-    background = psMetadataLookupF64(&status, md, "background");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item background");
-        return false;
-    }
-
-    return rawDetrendExpRowAlloc(exp_id, camera, telescope, exp_type, imfiles, filter, airmass, ra, decl, exp_time, background);
+    bg = psMetadataLookupF64(&status, md, "bg");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg");
+        return false;
+    }
+    bg_stdev = psMetadataLookupF64(&status, md, "bg_stdev");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_stdev");
+        return false;
+    }
+    bg_mean_stdev = psMetadataLookupF64(&status, md, "bg_mean_stdev");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_mean_stdev");
+        return false;
+    }
+    alt = psMetadataLookupF64(&status, md, "alt");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item alt");
+        return false;
+    }
+    az = psMetadataLookupF64(&status, md, "az");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item az");
+        return false;
+    }
+    ccd_temp = psMetadataLookupF32(&status, md, "ccd_temp");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ccd_temp");
+        return false;
+    }
+    posang = psMetadataLookupF64(&status, md, "posang");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item posang");
+        return false;
+    }
+
+    return rawDetrendExpRowAlloc(exp_id, camera, telescope, exp_type, imfiles, filter, airmass, ra, decl, exp_time, bg, bg_stdev, bg_mean_stdev, alt, az, ccd_temp, posang);
 }
 psArray *rawDetrendExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
@@ -7612,5 +7786,5 @@
 static void rawScienceExpRowFree(rawScienceExpRow *object);
 
-rawScienceExpRow *rawScienceExpRowAlloc(const char *exp_id, const char *camera, const char *telescope, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 background)
+rawScienceExpRow *rawScienceExpRowAlloc(const char *exp_id, const char *camera, const char *telescope, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang)
 {
     rawScienceExpRow *object;
@@ -7629,5 +7803,11 @@
     object->decl = decl;
     object->exp_time = exp_time;
-    object->background = background;
+    object->bg = bg;
+    object->bg_stdev = bg_stdev;
+    object->bg_mean_stdev = bg_mean_stdev;
+    object->alt = alt;
+    object->az = az;
+    object->ccd_temp = ccd_temp;
+    object->posang = posang;
 
     return object;
@@ -7704,6 +7884,36 @@
         return false;
     }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, 0.0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item background");
+    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, 0.0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, 0.0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, 0.0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAddF64(md, PS_LIST_TAIL, "alt", 0, NULL, 0.0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item alt");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAddF64(md, PS_LIST_TAIL, "az", 0, NULL, 0.0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item az");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAddF32(md, PS_LIST_TAIL, "ccd_temp", 0, NULL, 0.0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item ccd_temp");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAddF64(md, PS_LIST_TAIL, "posang", 0, NULL, 0.0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item posang");
         psFree(md);
         return false;
@@ -7722,5 +7932,5 @@
 }
 
-bool rawScienceExpInsert(psDB * dbh, const char *exp_id, const char *camera, const char *telescope, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 background)
+bool rawScienceExpInsert(psDB * dbh, const char *exp_id, const char *camera, const char *telescope, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF64 alt, psF64 az, psF32 ccd_temp, psF64 posang)
 {
     psMetadata      *md;
@@ -7778,6 +7988,36 @@
         return false;
     }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, background)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item background");
+    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, bg)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, bg_stdev)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, bg_mean_stdev)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAddF64(md, PS_LIST_TAIL, "alt", 0, NULL, alt)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item alt");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAddF64(md, PS_LIST_TAIL, "az", 0, NULL, az)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item az");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAddF32(md, PS_LIST_TAIL, "ccd_temp", 0, NULL, ccd_temp)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item ccd_temp");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAddF64(md, PS_LIST_TAIL, "posang", 0, NULL, posang)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item posang");
         psFree(md);
         return false;
@@ -7804,5 +8044,5 @@
     return deleted;
 }
-bool rawScienceExpPop(psDB *dbh, char **exp_id, char **camera, char **telescope, char **exp_type, psS32 *imfiles, char **filter, psF32 *airmass, psF64 *ra, psF64 *decl, psF32 *exp_time, psF64 *background)
+bool rawScienceExpPop(psDB *dbh, char **exp_id, char **camera, char **telescope, char **exp_type, psS32 *imfiles, char **filter, psF32 *airmass, psF64 *ra, psF64 *decl, psF32 *exp_time, psF64 *bg, psF64 *bg_stdev, psF64 *bg_mean_stdev, psF64 *alt, psF64 *az, psF32 *ccd_temp, psF64 *posang)
 {
     psArray         *rowSet;
@@ -7908,7 +8148,43 @@
         return false;
     }
-    *background = psMetadataLookupF64(&status, row, "background");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item background");
+    *bg = psMetadataLookupF64(&status, row, "bg");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg");
+        psFree(row);
+        return false;
+    }
+    *bg_stdev = psMetadataLookupF64(&status, row, "bg_stdev");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_stdev");
+        psFree(row);
+        return false;
+    }
+    *bg_mean_stdev = psMetadataLookupF64(&status, row, "bg_mean_stdev");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_mean_stdev");
+        psFree(row);
+        return false;
+    }
+    *alt = psMetadataLookupF64(&status, row, "alt");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item alt");
+        psFree(row);
+        return false;
+    }
+    *az = psMetadataLookupF64(&status, row, "az");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item az");
+        psFree(row);
+        return false;
+    }
+    *ccd_temp = psMetadataLookupF32(&status, row, "ccd_temp");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ccd_temp");
+        psFree(row);
+        return false;
+    }
+    *posang = psMetadataLookupF64(&status, row, "posang");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item posang");
         psFree(row);
         return false;
@@ -7922,5 +8198,5 @@
 bool rawScienceExpInsertObject(psDB *dbh, rawScienceExpRow *object)
 {
-    return rawScienceExpInsert(dbh, object->exp_id, object->camera, object->telescope, object->exp_type, object->imfiles, object->filter, object->airmass, object->ra, object->decl, object->exp_time, object->background);
+    return rawScienceExpInsert(dbh, object->exp_id, object->camera, object->telescope, object->exp_type, object->imfiles, object->filter, object->airmass, object->ra, object->decl, object->exp_time, object->bg, object->bg_stdev, object->bg_mean_stdev, object->alt, object->az, object->ccd_temp, object->posang);
 }
 
@@ -7937,12 +8213,18 @@
     psF64           decl;
     psF32           exp_time;
-    psF64           background;
-
-    if (!rawScienceExpPop(dbh, (char **)&exp_id, (char **)&camera, (char **)&telescope, (char **)&exp_type, &imfiles, (char **)&filter, &airmass, &ra, &decl, &exp_time, &background)) {
+    psF64           bg;
+    psF64           bg_stdev;
+    psF64           bg_mean_stdev;
+    psF64           alt;
+    psF64           az;
+    psF32           ccd_temp;
+    psF64           posang;
+
+    if (!rawScienceExpPop(dbh, (char **)&exp_id, (char **)&camera, (char **)&telescope, (char **)&exp_type, &imfiles, (char **)&filter, &airmass, &ra, &decl, &exp_time, &bg, &bg_stdev, &bg_mean_stdev, &alt, &az, &ccd_temp, &posang)) {
         psError(PS_ERR_UNKNOWN, false, "failed to pop a database row");
         return NULL;
     }
 
-    return rawScienceExpRowAlloc(exp_id, camera, telescope, exp_type, imfiles, filter, airmass, ra, decl, exp_time, background);
+    return rawScienceExpRowAlloc(exp_id, camera, telescope, exp_type, imfiles, filter, airmass, ra, decl, exp_time, bg, bg_stdev, bg_mean_stdev, alt, az, ccd_temp, posang);
 }
 
@@ -8093,6 +8375,36 @@
         return NULL;
     }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, object->background)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item background");
+    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, object->bg)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item bg");
+        psFree(md);
+        return NULL;
+    }
+    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, object->bg_stdev)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_stdev");
+        psFree(md);
+        return NULL;
+    }
+    if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, object->bg_mean_stdev)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item bg_mean_stdev");
+        psFree(md);
+        return NULL;
+    }
+    if (!psMetadataAddF64(md, PS_LIST_TAIL, "alt", 0, NULL, object->alt)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item alt");
+        psFree(md);
+        return NULL;
+    }
+    if (!psMetadataAddF64(md, PS_LIST_TAIL, "az", 0, NULL, object->az)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item az");
+        psFree(md);
+        return NULL;
+    }
+    if (!psMetadataAddF32(md, PS_LIST_TAIL, "ccd_temp", 0, NULL, object->ccd_temp)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item ccd_temp");
+        psFree(md);
+        return NULL;
+    }
+    if (!psMetadataAddF64(md, PS_LIST_TAIL, "posang", 0, NULL, object->posang)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item posang");
         psFree(md);
         return NULL;
@@ -8115,5 +8427,11 @@
     psF64           decl;
     psF32           exp_time;
-    psF64           background;
+    psF64           bg;
+    psF64           bg_stdev;
+    psF64           bg_mean_stdev;
+    psF64           alt;
+    psF64           az;
+    psF32           ccd_temp;
+    psF64           posang;
 
     exp_id = psMetadataLookupPtr(&status, md, "exp_id");
@@ -8167,11 +8485,41 @@
         return false;
     }
-    background = psMetadataLookupF64(&status, md, "background");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item background");
-        return false;
-    }
-
-    return rawScienceExpRowAlloc(exp_id, camera, telescope, exp_type, imfiles, filter, airmass, ra, decl, exp_time, background);
+    bg = psMetadataLookupF64(&status, md, "bg");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg");
+        return false;
+    }
+    bg_stdev = psMetadataLookupF64(&status, md, "bg_stdev");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_stdev");
+        return false;
+    }
+    bg_mean_stdev = psMetadataLookupF64(&status, md, "bg_mean_stdev");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item bg_mean_stdev");
+        return false;
+    }
+    alt = psMetadataLookupF64(&status, md, "alt");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item alt");
+        return false;
+    }
+    az = psMetadataLookupF64(&status, md, "az");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item az");
+        return false;
+    }
+    ccd_temp = psMetadataLookupF32(&status, md, "ccd_temp");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ccd_temp");
+        return false;
+    }
+    posang = psMetadataLookupF64(&status, md, "posang");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item posang");
+        return false;
+    }
+
+    return rawScienceExpRowAlloc(exp_id, camera, telescope, exp_type, imfiles, filter, airmass, ra, decl, exp_time, bg, bg_stdev, bg_mean_stdev, alt, az, ccd_temp, posang);
 }
 psArray *rawScienceExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
@@ -8332,5 +8680,5 @@
         return false;
     }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "class", 0, "Primary Key", "64")) {
+    if (!psMetadataAddStr(md, PS_LIST_TAIL, "class", 0, NULL, "64")) {
         psError(PS_ERR_UNKNOWN, false, "failed to add item class");
         psFree(md);
@@ -9093,5 +9441,5 @@
 static void p1PendingExpRowFree(p1PendingExpRow *object);
 
-p1PendingExpRow *p1PendingExpRowAlloc(const char *exp_id, const char *camera, const char *telescope, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 background, const char *recipe, psS32 p1_version)
+p1PendingExpRow *p1PendingExpRowAlloc(const char *exp_id, const char *recipe, psS32 p1_version)
 {
     p1PendingExpRow *object;
@@ -9101,14 +9449,4 @@
 
     object->exp_id = psStringCopy(exp_id);
-    object->camera = psStringCopy(camera);
-    object->telescope = psStringCopy(telescope);
-    object->exp_type = psStringCopy(exp_type);
-    object->imfiles = imfiles;
-    object->filter = psStringCopy(filter);
-    object->airmass = airmass;
-    object->ra = ra;
-    object->decl = decl;
-    object->exp_time = exp_time;
-    object->background = background;
     object->recipe = psStringCopy(recipe);
     object->p1_version = p1_version;
@@ -9120,8 +9458,4 @@
 {
     psFree(object->exp_id);
-    psFree(object->camera);
-    psFree(object->telescope);
-    psFree(object->exp_type);
-    psFree(object->filter);
     psFree(object->recipe);
 }
@@ -9143,54 +9477,4 @@
         return false;
     }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, "255")) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "telescope", 0, NULL, "255")) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item telescope");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, "64")) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddS32(md, PS_LIST_TAIL, "imfiles", 0, NULL, 0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item imfiles");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, "255")) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, 0.0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "ra", 0, NULL, 0.0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item ra");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, 0.0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item decl");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF32(md, PS_LIST_TAIL, "exp_time", 0, NULL, 0.0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, 0.0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item background");
-        psFree(md);
-        return false;
-    }
     if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, "64")) {
         psError(PS_ERR_UNKNOWN, false, "failed to add item recipe");
@@ -9216,5 +9500,5 @@
 }
 
-bool p1PendingExpInsert(psDB * dbh, const char *exp_id, const char *camera, const char *telescope, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 background, const char *recipe, psS32 p1_version)
+bool p1PendingExpInsert(psDB * dbh, const char *exp_id, const char *recipe, psS32 p1_version)
 {
     psMetadata      *md;
@@ -9224,54 +9508,4 @@
     if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_id", 0, NULL, exp_id)) {
         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, camera)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "telescope", 0, NULL, telescope)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item telescope");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, exp_type)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddS32(md, PS_LIST_TAIL, "imfiles", 0, NULL, imfiles)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item imfiles");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, filter)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, airmass)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "ra", 0, NULL, ra)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item ra");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, decl)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item decl");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF32(md, PS_LIST_TAIL, "exp_time", 0, NULL, exp_time)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, background)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item background");
         psFree(md);
         return false;
@@ -9308,5 +9542,5 @@
     return deleted;
 }
-bool p1PendingExpPop(psDB *dbh, char **exp_id, char **camera, char **telescope, char **exp_type, psS32 *imfiles, char **filter, psF32 *airmass, psF64 *ra, psF64 *decl, psF32 *exp_time, psF64 *background, char **recipe, psS32 *p1_version)
+bool p1PendingExpPop(psDB *dbh, char **exp_id, char **recipe, psS32 *p1_version)
 {
     psArray         *rowSet;
@@ -9358,64 +9592,4 @@
         return false;
     }
-    *camera = psMetadataLookupPtr(&status, row, "camera");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item camera");
-        psFree(row);
-        return false;
-    }
-    *telescope = psMetadataLookupPtr(&status, row, "telescope");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item telescope");
-        psFree(row);
-        return false;
-    }
-    *exp_type = psMetadataLookupPtr(&status, row, "exp_type");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_type");
-        psFree(row);
-        return false;
-    }
-    *imfiles = psMetadataLookupS32(&status, row, "imfiles");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item imfiles");
-        psFree(row);
-        return false;
-    }
-    *filter = psMetadataLookupPtr(&status, row, "filter");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item filter");
-        psFree(row);
-        return false;
-    }
-    *airmass = psMetadataLookupF32(&status, row, "airmass");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item airmass");
-        psFree(row);
-        return false;
-    }
-    *ra = psMetadataLookupF64(&status, row, "ra");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ra");
-        psFree(row);
-        return false;
-    }
-    *decl = psMetadataLookupF64(&status, row, "decl");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item decl");
-        psFree(row);
-        return false;
-    }
-    *exp_time = psMetadataLookupF32(&status, row, "exp_time");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_time");
-        psFree(row);
-        return false;
-    }
-    *background = psMetadataLookupF64(&status, row, "background");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item background");
-        psFree(row);
-        return false;
-    }
     *recipe = psMetadataLookupPtr(&status, row, "recipe");
     if (!status) {
@@ -9438,5 +9612,5 @@
 bool p1PendingExpInsertObject(psDB *dbh, p1PendingExpRow *object)
 {
-    return p1PendingExpInsert(dbh, object->exp_id, object->camera, object->telescope, object->exp_type, object->imfiles, object->filter, object->airmass, object->ra, object->decl, object->exp_time, object->background, object->recipe, object->p1_version);
+    return p1PendingExpInsert(dbh, object->exp_id, object->recipe, object->p1_version);
 }
 
@@ -9444,23 +9618,13 @@
 {
     char            exp_id[256];
-    char            camera[256];
-    char            telescope[256];
-    char            exp_type[256];
-    psS32           imfiles;
-    char            filter[256];
-    psF32           airmass;
-    psF64           ra;
-    psF64           decl;
-    psF32           exp_time;
-    psF64           background;
     char            recipe[256];
     psS32           p1_version;
 
-    if (!p1PendingExpPop(dbh, (char **)&exp_id, (char **)&camera, (char **)&telescope, (char **)&exp_type, &imfiles, (char **)&filter, &airmass, &ra, &decl, &exp_time, &background, (char **)&recipe, &p1_version)) {
+    if (!p1PendingExpPop(dbh, (char **)&exp_id, (char **)&recipe, &p1_version)) {
         psError(PS_ERR_UNKNOWN, false, "failed to pop a database row");
         return NULL;
     }
 
-    return p1PendingExpRowAlloc(exp_id, camera, telescope, exp_type, imfiles, filter, airmass, ra, decl, exp_time, background, recipe, p1_version);
+    return p1PendingExpRowAlloc(exp_id, recipe, p1_version);
 }
 
@@ -9566,54 +9730,4 @@
         return NULL;
     }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, object->camera)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "telescope", 0, NULL, object->telescope)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item telescope");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, object->exp_type)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddS32(md, PS_LIST_TAIL, "imfiles", 0, NULL, object->imfiles)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item imfiles");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, object->filter)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, object->airmass)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "ra", 0, NULL, object->ra)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item ra");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, object->decl)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item decl");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddF32(md, PS_LIST_TAIL, "exp_time", 0, NULL, object->exp_time)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, object->background)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item background");
-        psFree(md);
-        return NULL;
-    }
     if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, object->recipe)) {
         psError(PS_ERR_UNKNOWN, false, "failed to add item recipe");
@@ -9634,14 +9748,4 @@
     bool            status;
     char            *exp_id;
-    char            *camera;
-    char            *telescope;
-    char            *exp_type;
-    psS32           imfiles;
-    char            *filter;
-    psF32           airmass;
-    psF64           ra;
-    psF64           decl;
-    psF32           exp_time;
-    psF64           background;
     char            *recipe;
     psS32           p1_version;
@@ -9652,54 +9756,4 @@
         return false;
     }
-    camera = psMetadataLookupPtr(&status, md, "camera");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item camera");
-        return false;
-    }
-    telescope = psMetadataLookupPtr(&status, md, "telescope");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item telescope");
-        return false;
-    }
-    exp_type = psMetadataLookupPtr(&status, md, "exp_type");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_type");
-        return false;
-    }
-    imfiles = psMetadataLookupS32(&status, md, "imfiles");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item imfiles");
-        return false;
-    }
-    filter = psMetadataLookupPtr(&status, md, "filter");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item filter");
-        return false;
-    }
-    airmass = psMetadataLookupF32(&status, md, "airmass");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item airmass");
-        return false;
-    }
-    ra = psMetadataLookupF64(&status, md, "ra");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ra");
-        return false;
-    }
-    decl = psMetadataLookupF64(&status, md, "decl");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item decl");
-        return false;
-    }
-    exp_time = psMetadataLookupF32(&status, md, "exp_time");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_time");
-        return false;
-    }
-    background = psMetadataLookupF64(&status, md, "background");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item background");
-        return false;
-    }
     recipe = psMetadataLookupPtr(&status, md, "recipe");
     if (!status) {
@@ -9713,5 +9767,5 @@
     }
 
-    return p1PendingExpRowAlloc(exp_id, camera, telescope, exp_type, imfiles, filter, airmass, ra, decl, exp_time, background, recipe, p1_version);
+    return p1PendingExpRowAlloc(exp_id, recipe, p1_version);
 }
 psArray *p1PendingExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
@@ -9820,5 +9874,5 @@
 static void p2PendingExpRowFree(p2PendingExpRow *object);
 
-p2PendingExpRow *p2PendingExpRowAlloc(const char *exp_id, const char *camera, const char *telescope, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF32 ra, psF64 decl, psF64 exp_time, psF64 background, const char *recipe, psS32 p1_version, psS32 p2_version)
+p2PendingExpRow *p2PendingExpRowAlloc(const char *exp_id, const char *recipe, psS32 p1_version, psS32 p2_version)
 {
     p2PendingExpRow *object;
@@ -9828,14 +9882,4 @@
 
     object->exp_id = psStringCopy(exp_id);
-    object->camera = psStringCopy(camera);
-    object->telescope = psStringCopy(telescope);
-    object->exp_type = psStringCopy(exp_type);
-    object->imfiles = imfiles;
-    object->filter = psStringCopy(filter);
-    object->airmass = airmass;
-    object->ra = ra;
-    object->decl = decl;
-    object->exp_time = exp_time;
-    object->background = background;
     object->recipe = psStringCopy(recipe);
     object->p1_version = p1_version;
@@ -9848,8 +9892,4 @@
 {
     psFree(object->exp_id);
-    psFree(object->camera);
-    psFree(object->telescope);
-    psFree(object->exp_type);
-    psFree(object->filter);
     psFree(object->recipe);
 }
@@ -9871,54 +9911,4 @@
         return false;
     }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, "255")) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "telescope", 0, NULL, "255")) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item telescope");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, "64")) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddS32(md, PS_LIST_TAIL, "imfiles", 0, NULL, 0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item imfiles");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, "255")) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, 0.0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF32(md, PS_LIST_TAIL, "ra", 0, NULL, 0.0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item ra");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, 0.0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item decl");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "exp_time", 0, NULL, 0.0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, 0.0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item background");
-        psFree(md);
-        return false;
-    }
     if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, "64")) {
         psError(PS_ERR_UNKNOWN, false, "failed to add item recipe");
@@ -9949,5 +9939,5 @@
 }
 
-bool p2PendingExpInsert(psDB * dbh, const char *exp_id, const char *camera, const char *telescope, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF32 ra, psF64 decl, psF64 exp_time, psF64 background, const char *recipe, psS32 p1_version, psS32 p2_version)
+bool p2PendingExpInsert(psDB * dbh, const char *exp_id, const char *recipe, psS32 p1_version, psS32 p2_version)
 {
     psMetadata      *md;
@@ -9957,54 +9947,4 @@
     if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_id", 0, NULL, exp_id)) {
         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, camera)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "telescope", 0, NULL, telescope)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item telescope");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, exp_type)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddS32(md, PS_LIST_TAIL, "imfiles", 0, NULL, imfiles)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item imfiles");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, filter)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, airmass)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF32(md, PS_LIST_TAIL, "ra", 0, NULL, ra)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item ra");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, decl)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item decl");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "exp_time", 0, NULL, exp_time)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, background)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item background");
         psFree(md);
         return false;
@@ -10046,5 +9986,5 @@
     return deleted;
 }
-bool p2PendingExpPop(psDB *dbh, char **exp_id, char **camera, char **telescope, char **exp_type, psS32 *imfiles, char **filter, psF32 *airmass, psF32 *ra, psF64 *decl, psF64 *exp_time, psF64 *background, char **recipe, psS32 *p1_version, psS32 *p2_version)
+bool p2PendingExpPop(psDB *dbh, char **exp_id, char **recipe, psS32 *p1_version, psS32 *p2_version)
 {
     psArray         *rowSet;
@@ -10096,64 +10036,4 @@
         return false;
     }
-    *camera = psMetadataLookupPtr(&status, row, "camera");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item camera");
-        psFree(row);
-        return false;
-    }
-    *telescope = psMetadataLookupPtr(&status, row, "telescope");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item telescope");
-        psFree(row);
-        return false;
-    }
-    *exp_type = psMetadataLookupPtr(&status, row, "exp_type");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_type");
-        psFree(row);
-        return false;
-    }
-    *imfiles = psMetadataLookupS32(&status, row, "imfiles");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item imfiles");
-        psFree(row);
-        return false;
-    }
-    *filter = psMetadataLookupPtr(&status, row, "filter");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item filter");
-        psFree(row);
-        return false;
-    }
-    *airmass = psMetadataLookupF32(&status, row, "airmass");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item airmass");
-        psFree(row);
-        return false;
-    }
-    *ra = psMetadataLookupF32(&status, row, "ra");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ra");
-        psFree(row);
-        return false;
-    }
-    *decl = psMetadataLookupF64(&status, row, "decl");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item decl");
-        psFree(row);
-        return false;
-    }
-    *exp_time = psMetadataLookupF64(&status, row, "exp_time");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_time");
-        psFree(row);
-        return false;
-    }
-    *background = psMetadataLookupF64(&status, row, "background");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item background");
-        psFree(row);
-        return false;
-    }
     *recipe = psMetadataLookupPtr(&status, row, "recipe");
     if (!status) {
@@ -10182,5 +10062,5 @@
 bool p2PendingExpInsertObject(psDB *dbh, p2PendingExpRow *object)
 {
-    return p2PendingExpInsert(dbh, object->exp_id, object->camera, object->telescope, object->exp_type, object->imfiles, object->filter, object->airmass, object->ra, object->decl, object->exp_time, object->background, object->recipe, object->p1_version, object->p2_version);
+    return p2PendingExpInsert(dbh, object->exp_id, object->recipe, object->p1_version, object->p2_version);
 }
 
@@ -10188,24 +10068,14 @@
 {
     char            exp_id[256];
-    char            camera[256];
-    char            telescope[256];
-    char            exp_type[256];
-    psS32           imfiles;
-    char            filter[256];
-    psF32           airmass;
-    psF32           ra;
-    psF64           decl;
-    psF64           exp_time;
-    psF64           background;
     char            recipe[256];
     psS32           p1_version;
     psS32           p2_version;
 
-    if (!p2PendingExpPop(dbh, (char **)&exp_id, (char **)&camera, (char **)&telescope, (char **)&exp_type, &imfiles, (char **)&filter, &airmass, &ra, &decl, &exp_time, &background, (char **)&recipe, &p1_version, &p2_version)) {
+    if (!p2PendingExpPop(dbh, (char **)&exp_id, (char **)&recipe, &p1_version, &p2_version)) {
         psError(PS_ERR_UNKNOWN, false, "failed to pop a database row");
         return NULL;
     }
 
-    return p2PendingExpRowAlloc(exp_id, camera, telescope, exp_type, imfiles, filter, airmass, ra, decl, exp_time, background, recipe, p1_version, p2_version);
+    return p2PendingExpRowAlloc(exp_id, recipe, p1_version, p2_version);
 }
 
@@ -10311,54 +10181,4 @@
         return NULL;
     }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, object->camera)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "telescope", 0, NULL, object->telescope)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item telescope");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, object->exp_type)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddS32(md, PS_LIST_TAIL, "imfiles", 0, NULL, object->imfiles)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item imfiles");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, object->filter)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, object->airmass)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddF32(md, PS_LIST_TAIL, "ra", 0, NULL, object->ra)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item ra");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, object->decl)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item decl");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "exp_time", 0, NULL, object->exp_time)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, object->background)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item background");
-        psFree(md);
-        return NULL;
-    }
     if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, object->recipe)) {
         psError(PS_ERR_UNKNOWN, false, "failed to add item recipe");
@@ -10384,14 +10204,4 @@
     bool            status;
     char            *exp_id;
-    char            *camera;
-    char            *telescope;
-    char            *exp_type;
-    psS32           imfiles;
-    char            *filter;
-    psF32           airmass;
-    psF32           ra;
-    psF64           decl;
-    psF64           exp_time;
-    psF64           background;
     char            *recipe;
     psS32           p1_version;
@@ -10403,54 +10213,4 @@
         return false;
     }
-    camera = psMetadataLookupPtr(&status, md, "camera");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item camera");
-        return false;
-    }
-    telescope = psMetadataLookupPtr(&status, md, "telescope");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item telescope");
-        return false;
-    }
-    exp_type = psMetadataLookupPtr(&status, md, "exp_type");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_type");
-        return false;
-    }
-    imfiles = psMetadataLookupS32(&status, md, "imfiles");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item imfiles");
-        return false;
-    }
-    filter = psMetadataLookupPtr(&status, md, "filter");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item filter");
-        return false;
-    }
-    airmass = psMetadataLookupF32(&status, md, "airmass");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item airmass");
-        return false;
-    }
-    ra = psMetadataLookupF32(&status, md, "ra");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ra");
-        return false;
-    }
-    decl = psMetadataLookupF64(&status, md, "decl");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item decl");
-        return false;
-    }
-    exp_time = psMetadataLookupF64(&status, md, "exp_time");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_time");
-        return false;
-    }
-    background = psMetadataLookupF64(&status, md, "background");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item background");
-        return false;
-    }
     recipe = psMetadataLookupPtr(&status, md, "recipe");
     if (!status) {
@@ -10469,5 +10229,5 @@
     }
 
-    return p2PendingExpRowAlloc(exp_id, camera, telescope, exp_type, imfiles, filter, airmass, ra, decl, exp_time, background, recipe, p1_version, p2_version);
+    return p2PendingExpRowAlloc(exp_id, recipe, p1_version, p2_version);
 }
 psArray *p2PendingExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
@@ -10612,10 +10372,10 @@
         return false;
     }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_id", 0, "Key", "64")) {
+    if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_id", 0, "Primary Key", "64")) {
         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id");
         psFree(md);
         return false;
     }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "class_id", 0, NULL, "64")) {
+    if (!psMetadataAddStr(md, PS_LIST_TAIL, "class_id", 0, "Primary Key", "64")) {
         psError(PS_ERR_UNKNOWN, false, "failed to add item class_id");
         psFree(md);
@@ -11098,5 +10858,5 @@
 static void p2DoneExpRowFree(p2DoneExpRow *object);
 
-p2DoneExpRow *p2DoneExpRowAlloc(const char *exp_id, const char *camera, const char *telescope, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 background, const char *recipe, psS32 p1_version, psS32 p2_version)
+p2DoneExpRow *p2DoneExpRowAlloc(const char *exp_id, const char *recipe, psS32 p1_version, psS32 p2_version)
 {
     p2DoneExpRow    *object;
@@ -11106,14 +10866,4 @@
 
     object->exp_id = psStringCopy(exp_id);
-    object->camera = psStringCopy(camera);
-    object->telescope = psStringCopy(telescope);
-    object->exp_type = psStringCopy(exp_type);
-    object->imfiles = imfiles;
-    object->filter = psStringCopy(filter);
-    object->airmass = airmass;
-    object->ra = ra;
-    object->decl = decl;
-    object->exp_time = exp_time;
-    object->background = background;
     object->recipe = psStringCopy(recipe);
     object->p1_version = p1_version;
@@ -11126,8 +10876,4 @@
 {
     psFree(object->exp_id);
-    psFree(object->camera);
-    psFree(object->telescope);
-    psFree(object->exp_type);
-    psFree(object->filter);
     psFree(object->recipe);
 }
@@ -11149,54 +10895,4 @@
         return false;
     }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, "255")) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "telescope", 0, NULL, "255")) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item telescope");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, "64")) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddS32(md, PS_LIST_TAIL, "imfiles", 0, NULL, 0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item imfiles");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, "255")) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, 0.0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "ra", 0, NULL, 0.0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item ra");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, 0.0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item decl");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF32(md, PS_LIST_TAIL, "exp_time", 0, NULL, 0.0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, 0.0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item background");
-        psFree(md);
-        return false;
-    }
     if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, "64")) {
         psError(PS_ERR_UNKNOWN, false, "failed to add item recipe");
@@ -11227,5 +10923,5 @@
 }
 
-bool p2DoneExpInsert(psDB * dbh, const char *exp_id, const char *camera, const char *telescope, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 background, const char *recipe, psS32 p1_version, psS32 p2_version)
+bool p2DoneExpInsert(psDB * dbh, const char *exp_id, const char *recipe, psS32 p1_version, psS32 p2_version)
 {
     psMetadata      *md;
@@ -11235,54 +10931,4 @@
     if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_id", 0, NULL, exp_id)) {
         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, camera)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "telescope", 0, NULL, telescope)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item telescope");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, exp_type)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddS32(md, PS_LIST_TAIL, "imfiles", 0, NULL, imfiles)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item imfiles");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, filter)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, airmass)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "ra", 0, NULL, ra)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item ra");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, decl)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item decl");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF32(md, PS_LIST_TAIL, "exp_time", 0, NULL, exp_time)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, background)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item background");
         psFree(md);
         return false;
@@ -11324,5 +10970,5 @@
     return deleted;
 }
-bool p2DoneExpPop(psDB *dbh, char **exp_id, char **camera, char **telescope, char **exp_type, psS32 *imfiles, char **filter, psF32 *airmass, psF64 *ra, psF64 *decl, psF32 *exp_time, psF64 *background, char **recipe, psS32 *p1_version, psS32 *p2_version)
+bool p2DoneExpPop(psDB *dbh, char **exp_id, char **recipe, psS32 *p1_version, psS32 *p2_version)
 {
     psArray         *rowSet;
@@ -11374,64 +11020,4 @@
         return false;
     }
-    *camera = psMetadataLookupPtr(&status, row, "camera");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item camera");
-        psFree(row);
-        return false;
-    }
-    *telescope = psMetadataLookupPtr(&status, row, "telescope");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item telescope");
-        psFree(row);
-        return false;
-    }
-    *exp_type = psMetadataLookupPtr(&status, row, "exp_type");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_type");
-        psFree(row);
-        return false;
-    }
-    *imfiles = psMetadataLookupS32(&status, row, "imfiles");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item imfiles");
-        psFree(row);
-        return false;
-    }
-    *filter = psMetadataLookupPtr(&status, row, "filter");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item filter");
-        psFree(row);
-        return false;
-    }
-    *airmass = psMetadataLookupF32(&status, row, "airmass");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item airmass");
-        psFree(row);
-        return false;
-    }
-    *ra = psMetadataLookupF64(&status, row, "ra");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ra");
-        psFree(row);
-        return false;
-    }
-    *decl = psMetadataLookupF64(&status, row, "decl");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item decl");
-        psFree(row);
-        return false;
-    }
-    *exp_time = psMetadataLookupF32(&status, row, "exp_time");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_time");
-        psFree(row);
-        return false;
-    }
-    *background = psMetadataLookupF64(&status, row, "background");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item background");
-        psFree(row);
-        return false;
-    }
     *recipe = psMetadataLookupPtr(&status, row, "recipe");
     if (!status) {
@@ -11460,5 +11046,5 @@
 bool p2DoneExpInsertObject(psDB *dbh, p2DoneExpRow *object)
 {
-    return p2DoneExpInsert(dbh, object->exp_id, object->camera, object->telescope, object->exp_type, object->imfiles, object->filter, object->airmass, object->ra, object->decl, object->exp_time, object->background, object->recipe, object->p1_version, object->p2_version);
+    return p2DoneExpInsert(dbh, object->exp_id, object->recipe, object->p1_version, object->p2_version);
 }
 
@@ -11466,24 +11052,14 @@
 {
     char            exp_id[256];
-    char            camera[256];
-    char            telescope[256];
-    char            exp_type[256];
-    psS32           imfiles;
-    char            filter[256];
-    psF32           airmass;
-    psF64           ra;
-    psF64           decl;
-    psF32           exp_time;
-    psF64           background;
     char            recipe[256];
     psS32           p1_version;
     psS32           p2_version;
 
-    if (!p2DoneExpPop(dbh, (char **)&exp_id, (char **)&camera, (char **)&telescope, (char **)&exp_type, &imfiles, (char **)&filter, &airmass, &ra, &decl, &exp_time, &background, (char **)&recipe, &p1_version, &p2_version)) {
+    if (!p2DoneExpPop(dbh, (char **)&exp_id, (char **)&recipe, &p1_version, &p2_version)) {
         psError(PS_ERR_UNKNOWN, false, "failed to pop a database row");
         return NULL;
     }
 
-    return p2DoneExpRowAlloc(exp_id, camera, telescope, exp_type, imfiles, filter, airmass, ra, decl, exp_time, background, recipe, p1_version, p2_version);
+    return p2DoneExpRowAlloc(exp_id, recipe, p1_version, p2_version);
 }
 
@@ -11589,54 +11165,4 @@
         return NULL;
     }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, object->camera)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "telescope", 0, NULL, object->telescope)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item telescope");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, object->exp_type)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddS32(md, PS_LIST_TAIL, "imfiles", 0, NULL, object->imfiles)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item imfiles");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, object->filter)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, object->airmass)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "ra", 0, NULL, object->ra)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item ra");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, object->decl)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item decl");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddF32(md, PS_LIST_TAIL, "exp_time", 0, NULL, object->exp_time)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, object->background)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item background");
-        psFree(md);
-        return NULL;
-    }
     if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, object->recipe)) {
         psError(PS_ERR_UNKNOWN, false, "failed to add item recipe");
@@ -11662,14 +11188,4 @@
     bool            status;
     char            *exp_id;
-    char            *camera;
-    char            *telescope;
-    char            *exp_type;
-    psS32           imfiles;
-    char            *filter;
-    psF32           airmass;
-    psF64           ra;
-    psF64           decl;
-    psF32           exp_time;
-    psF64           background;
     char            *recipe;
     psS32           p1_version;
@@ -11681,54 +11197,4 @@
         return false;
     }
-    camera = psMetadataLookupPtr(&status, md, "camera");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item camera");
-        return false;
-    }
-    telescope = psMetadataLookupPtr(&status, md, "telescope");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item telescope");
-        return false;
-    }
-    exp_type = psMetadataLookupPtr(&status, md, "exp_type");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_type");
-        return false;
-    }
-    imfiles = psMetadataLookupS32(&status, md, "imfiles");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item imfiles");
-        return false;
-    }
-    filter = psMetadataLookupPtr(&status, md, "filter");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item filter");
-        return false;
-    }
-    airmass = psMetadataLookupF32(&status, md, "airmass");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item airmass");
-        return false;
-    }
-    ra = psMetadataLookupF64(&status, md, "ra");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ra");
-        return false;
-    }
-    decl = psMetadataLookupF64(&status, md, "decl");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item decl");
-        return false;
-    }
-    exp_time = psMetadataLookupF32(&status, md, "exp_time");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_time");
-        return false;
-    }
-    background = psMetadataLookupF64(&status, md, "background");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item background");
-        return false;
-    }
     recipe = psMetadataLookupPtr(&status, md, "recipe");
     if (!status) {
@@ -11747,5 +11213,5 @@
     }
 
-    return p2DoneExpRowAlloc(exp_id, camera, telescope, exp_type, imfiles, filter, airmass, ra, decl, exp_time, background, recipe, p1_version, p2_version);
+    return p2DoneExpRowAlloc(exp_id, recipe, p1_version, p2_version);
 }
 psArray *p2DoneExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
@@ -11890,10 +11356,10 @@
         return false;
     }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_id", 0, "Key", "64")) {
+    if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_id", 0, "Primary Key", "64")) {
         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id");
         psFree(md);
         return false;
     }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "class_id", 0, NULL, "64")) {
+    if (!psMetadataAddStr(md, PS_LIST_TAIL, "class_id", 0, "Primary Key", "64")) {
         psError(PS_ERR_UNKNOWN, false, "failed to add item class_id");
         psFree(md);
@@ -12376,5 +11842,5 @@
 static void p3PendingExpRowFree(p3PendingExpRow *object);
 
-p3PendingExpRow *p3PendingExpRowAlloc(const char *exp_id, const char *camera, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 background, const char *recipe, psS32 p2_version, psS32 p3_version)
+p3PendingExpRow *p3PendingExpRowAlloc(const char *exp_id, const char *recipe, psS32 p2_version, psS32 p3_version)
 {
     p3PendingExpRow *object;
@@ -12384,13 +11850,4 @@
 
     object->exp_id = psStringCopy(exp_id);
-    object->camera = psStringCopy(camera);
-    object->exp_type = psStringCopy(exp_type);
-    object->imfiles = imfiles;
-    object->filter = psStringCopy(filter);
-    object->airmass = airmass;
-    object->ra = ra;
-    object->decl = decl;
-    object->exp_time = exp_time;
-    object->background = background;
     object->recipe = psStringCopy(recipe);
     object->p2_version = p2_version;
@@ -12403,7 +11860,4 @@
 {
     psFree(object->exp_id);
-    psFree(object->camera);
-    psFree(object->exp_type);
-    psFree(object->filter);
     psFree(object->recipe);
 }
@@ -12425,49 +11879,4 @@
         return false;
     }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, "255")) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, "64")) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddS32(md, PS_LIST_TAIL, "imfiles", 0, NULL, 0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item imfiles");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, "255")) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, 0.0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "ra", 0, NULL, 0.0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item ra");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, 0.0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item decl");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF32(md, PS_LIST_TAIL, "exp_time", 0, NULL, 0.0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, 0.0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item background");
-        psFree(md);
-        return false;
-    }
     if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, "64")) {
         psError(PS_ERR_UNKNOWN, false, "failed to add item recipe");
@@ -12498,5 +11907,5 @@
 }
 
-bool p3PendingExpInsert(psDB * dbh, const char *exp_id, const char *camera, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 background, const char *recipe, psS32 p2_version, psS32 p3_version)
+bool p3PendingExpInsert(psDB * dbh, const char *exp_id, const char *recipe, psS32 p2_version, psS32 p3_version)
 {
     psMetadata      *md;
@@ -12506,49 +11915,4 @@
     if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_id", 0, NULL, exp_id)) {
         psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, camera)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, exp_type)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddS32(md, PS_LIST_TAIL, "imfiles", 0, NULL, imfiles)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item imfiles");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, filter)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, airmass)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "ra", 0, NULL, ra)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item ra");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, decl)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item decl");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF32(md, PS_LIST_TAIL, "exp_time", 0, NULL, exp_time)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, background)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item background");
         psFree(md);
         return false;
@@ -12590,5 +11954,5 @@
     return deleted;
 }
-bool p3PendingExpPop(psDB *dbh, char **exp_id, char **camera, char **exp_type, psS32 *imfiles, char **filter, psF32 *airmass, psF64 *ra, psF64 *decl, psF32 *exp_time, psF64 *background, char **recipe, psS32 *p2_version, psS32 *p3_version)
+bool p3PendingExpPop(psDB *dbh, char **exp_id, char **recipe, psS32 *p2_version, psS32 *p3_version)
 {
     psArray         *rowSet;
@@ -12640,58 +12004,4 @@
         return false;
     }
-    *camera = psMetadataLookupPtr(&status, row, "camera");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item camera");
-        psFree(row);
-        return false;
-    }
-    *exp_type = psMetadataLookupPtr(&status, row, "exp_type");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_type");
-        psFree(row);
-        return false;
-    }
-    *imfiles = psMetadataLookupS32(&status, row, "imfiles");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item imfiles");
-        psFree(row);
-        return false;
-    }
-    *filter = psMetadataLookupPtr(&status, row, "filter");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item filter");
-        psFree(row);
-        return false;
-    }
-    *airmass = psMetadataLookupF32(&status, row, "airmass");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item airmass");
-        psFree(row);
-        return false;
-    }
-    *ra = psMetadataLookupF64(&status, row, "ra");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ra");
-        psFree(row);
-        return false;
-    }
-    *decl = psMetadataLookupF64(&status, row, "decl");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item decl");
-        psFree(row);
-        return false;
-    }
-    *exp_time = psMetadataLookupF32(&status, row, "exp_time");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_time");
-        psFree(row);
-        return false;
-    }
-    *background = psMetadataLookupF64(&status, row, "background");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item background");
-        psFree(row);
-        return false;
-    }
     *recipe = psMetadataLookupPtr(&status, row, "recipe");
     if (!status) {
@@ -12720,5 +12030,5 @@
 bool p3PendingExpInsertObject(psDB *dbh, p3PendingExpRow *object)
 {
-    return p3PendingExpInsert(dbh, object->exp_id, object->camera, object->exp_type, object->imfiles, object->filter, object->airmass, object->ra, object->decl, object->exp_time, object->background, object->recipe, object->p2_version, object->p3_version);
+    return p3PendingExpInsert(dbh, object->exp_id, object->recipe, object->p2_version, object->p3_version);
 }
 
@@ -12726,23 +12036,14 @@
 {
     char            exp_id[256];
-    char            camera[256];
-    char            exp_type[256];
-    psS32           imfiles;
-    char            filter[256];
-    psF32           airmass;
-    psF64           ra;
-    psF64           decl;
-    psF32           exp_time;
-    psF64           background;
     char            recipe[256];
     psS32           p2_version;
     psS32           p3_version;
 
-    if (!p3PendingExpPop(dbh, (char **)&exp_id, (char **)&camera, (char **)&exp_type, &imfiles, (char **)&filter, &airmass, &ra, &decl, &exp_time, &background, (char **)&recipe, &p2_version, &p3_version)) {
+    if (!p3PendingExpPop(dbh, (char **)&exp_id, (char **)&recipe, &p2_version, &p3_version)) {
         psError(PS_ERR_UNKNOWN, false, "failed to pop a database row");
         return NULL;
     }
 
-    return p3PendingExpRowAlloc(exp_id, camera, exp_type, imfiles, filter, airmass, ra, decl, exp_time, background, recipe, p2_version, p3_version);
+    return p3PendingExpRowAlloc(exp_id, recipe, p2_version, p3_version);
 }
 
@@ -12848,49 +12149,4 @@
         return NULL;
     }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, object->camera)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, object->exp_type)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddS32(md, PS_LIST_TAIL, "imfiles", 0, NULL, object->imfiles)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item imfiles");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, object->filter)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, object->airmass)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "ra", 0, NULL, object->ra)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item ra");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, object->decl)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item decl");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddF32(md, PS_LIST_TAIL, "exp_time", 0, NULL, object->exp_time)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, object->background)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item background");
-        psFree(md);
-        return NULL;
-    }
     if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, object->recipe)) {
         psError(PS_ERR_UNKNOWN, false, "failed to add item recipe");
@@ -12916,13 +12172,4 @@
     bool            status;
     char            *exp_id;
-    char            *camera;
-    char            *exp_type;
-    psS32           imfiles;
-    char            *filter;
-    psF32           airmass;
-    psF64           ra;
-    psF64           decl;
-    psF32           exp_time;
-    psF64           background;
     char            *recipe;
     psS32           p2_version;
@@ -12934,49 +12181,4 @@
         return false;
     }
-    camera = psMetadataLookupPtr(&status, md, "camera");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item camera");
-        return false;
-    }
-    exp_type = psMetadataLookupPtr(&status, md, "exp_type");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_type");
-        return false;
-    }
-    imfiles = psMetadataLookupS32(&status, md, "imfiles");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item imfiles");
-        return false;
-    }
-    filter = psMetadataLookupPtr(&status, md, "filter");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item filter");
-        return false;
-    }
-    airmass = psMetadataLookupF32(&status, md, "airmass");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item airmass");
-        return false;
-    }
-    ra = psMetadataLookupF64(&status, md, "ra");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ra");
-        return false;
-    }
-    decl = psMetadataLookupF64(&status, md, "decl");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item decl");
-        return false;
-    }
-    exp_time = psMetadataLookupF32(&status, md, "exp_time");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_time");
-        return false;
-    }
-    background = psMetadataLookupF64(&status, md, "background");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item background");
-        return false;
-    }
     recipe = psMetadataLookupPtr(&status, md, "recipe");
     if (!status) {
@@ -12995,5 +12197,5 @@
     }
 
-    return p3PendingExpRowAlloc(exp_id, camera, exp_type, imfiles, filter, airmass, ra, decl, exp_time, background, recipe, p2_version, p3_version);
+    return p3PendingExpRowAlloc(exp_id, recipe, p2_version, p3_version);
 }
 psArray *p3PendingExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
@@ -13505,5 +12707,5 @@
 static void detInputExpRowFree(detInputExpRow *object);
 
-detInputExpRow *detInputExpRowAlloc(psS32 det_id, psS32 iteration, const char *exp_id, const char *camera, const char *telescope, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 background)
+detInputExpRow *detInputExpRowAlloc(psS32 det_id, psS32 iteration, const char *exp_id, bool include, bool accept)
 {
     detInputExpRow  *object;
@@ -13515,14 +12717,6 @@
     object->iteration = iteration;
     object->exp_id = psStringCopy(exp_id);
-    object->camera = psStringCopy(camera);
-    object->telescope = psStringCopy(telescope);
-    object->exp_type = psStringCopy(exp_type);
-    object->imfiles = imfiles;
-    object->filter = psStringCopy(filter);
-    object->airmass = airmass;
-    object->ra = ra;
-    object->decl = decl;
-    object->exp_time = exp_time;
-    object->background = background;
+    object->include = include;
+    object->accept = accept;
 
     return object;
@@ -13532,8 +12726,4 @@
 {
     psFree(object->exp_id);
-    psFree(object->camera);
-    psFree(object->telescope);
-    psFree(object->exp_type);
-    psFree(object->filter);
 }
 
@@ -13564,51 +12754,11 @@
         return false;
     }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, "255")) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "telescope", 0, NULL, "255")) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item telescope");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, "64")) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddS32(md, PS_LIST_TAIL, "imfiles", 0, NULL, 0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item imfiles");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, "255")) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, 0.0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "ra", 0, NULL, 0.0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item ra");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, 0.0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item decl");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF32(md, PS_LIST_TAIL, "exp_time", 0, NULL, 0.0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, 0.0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item background");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "include", PS_DATA_BOOL, NULL, false)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item include");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "accept", PS_DATA_BOOL, NULL, false)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item accept");
         psFree(md);
         return false;
@@ -13627,5 +12777,5 @@
 }
 
-bool detInputExpInsert(psDB * dbh, psS32 det_id, psS32 iteration, const char *exp_id, const char *camera, const char *telescope, const char *exp_type, psS32 imfiles, const char *filter, psF32 airmass, psF64 ra, psF64 decl, psF32 exp_time, psF64 background)
+bool detInputExpInsert(psDB * dbh, psS32 det_id, psS32 iteration, const char *exp_id, bool include, bool accept)
 {
     psMetadata      *md;
@@ -13648,51 +12798,11 @@
         return false;
     }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, camera)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "telescope", 0, NULL, telescope)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item telescope");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, exp_type)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddS32(md, PS_LIST_TAIL, "imfiles", 0, NULL, imfiles)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item imfiles");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, filter)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, airmass)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "ra", 0, NULL, ra)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item ra");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, decl)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item decl");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF32(md, PS_LIST_TAIL, "exp_time", 0, NULL, exp_time)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, background)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item background");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "include", PS_DATA_BOOL, NULL, include)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item include");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "accept", PS_DATA_BOOL, NULL, accept)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item accept");
         psFree(md);
         return false;
@@ -13719,5 +12829,5 @@
     return deleted;
 }
-bool detInputExpPop(psDB *dbh, psS32 *det_id, psS32 *iteration, char **exp_id, char **camera, char **telescope, char **exp_type, psS32 *imfiles, char **filter, psF32 *airmass, psF64 *ra, psF64 *decl, psF32 *exp_time, psF64 *background)
+bool detInputExpPop(psDB *dbh, psS32 *det_id, psS32 *iteration, char **exp_id, bool *include, bool *accept)
 {
     psArray         *rowSet;
@@ -13781,61 +12891,13 @@
         return false;
     }
-    *camera = psMetadataLookupPtr(&status, row, "camera");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item camera");
-        psFree(row);
-        return false;
-    }
-    *telescope = psMetadataLookupPtr(&status, row, "telescope");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item telescope");
-        psFree(row);
-        return false;
-    }
-    *exp_type = psMetadataLookupPtr(&status, row, "exp_type");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_type");
-        psFree(row);
-        return false;
-    }
-    *imfiles = psMetadataLookupS32(&status, row, "imfiles");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item imfiles");
-        psFree(row);
-        return false;
-    }
-    *filter = psMetadataLookupPtr(&status, row, "filter");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item filter");
-        psFree(row);
-        return false;
-    }
-    *airmass = psMetadataLookupF32(&status, row, "airmass");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item airmass");
-        psFree(row);
-        return false;
-    }
-    *ra = psMetadataLookupF64(&status, row, "ra");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ra");
-        psFree(row);
-        return false;
-    }
-    *decl = psMetadataLookupF64(&status, row, "decl");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item decl");
-        psFree(row);
-        return false;
-    }
-    *exp_time = psMetadataLookupF32(&status, row, "exp_time");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_time");
-        psFree(row);
-        return false;
-    }
-    *background = psMetadataLookupF64(&status, row, "background");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item background");
+    *include = psMetadataLookupBool(&status, row, "include");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item include");
+        psFree(row);
+        return false;
+    }
+    *accept = psMetadataLookupBool(&status, row, "accept");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item accept");
         psFree(row);
         return false;
@@ -13849,5 +12911,5 @@
 bool detInputExpInsertObject(psDB *dbh, detInputExpRow *object)
 {
-    return detInputExpInsert(dbh, object->det_id, object->iteration, object->exp_id, object->camera, object->telescope, object->exp_type, object->imfiles, object->filter, object->airmass, object->ra, object->decl, object->exp_time, object->background);
+    return detInputExpInsert(dbh, object->det_id, object->iteration, object->exp_id, object->include, object->accept);
 }
 
@@ -13857,21 +12919,13 @@
     psS32           iteration;
     char            exp_id[256];
-    char            camera[256];
-    char            telescope[256];
-    char            exp_type[256];
-    psS32           imfiles;
-    char            filter[256];
-    psF32           airmass;
-    psF64           ra;
-    psF64           decl;
-    psF32           exp_time;
-    psF64           background;
-
-    if (!detInputExpPop(dbh, &det_id, &iteration, (char **)&exp_id, (char **)&camera, (char **)&telescope, (char **)&exp_type, &imfiles, (char **)&filter, &airmass, &ra, &decl, &exp_time, &background)) {
+    bool            include;
+    bool            accept;
+
+    if (!detInputExpPop(dbh, &det_id, &iteration, (char **)&exp_id, &include, &accept)) {
         psError(PS_ERR_UNKNOWN, false, "failed to pop a database row");
         return NULL;
     }
 
-    return detInputExpRowAlloc(det_id, iteration, exp_id, camera, telescope, exp_type, imfiles, filter, airmass, ra, decl, exp_time, background);
+    return detInputExpRowAlloc(det_id, iteration, exp_id, include, accept);
 }
 
@@ -13987,51 +13041,11 @@
         return NULL;
     }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, object->camera)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item camera");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "telescope", 0, NULL, object->telescope)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item telescope");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, object->exp_type)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddS32(md, PS_LIST_TAIL, "imfiles", 0, NULL, object->imfiles)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item imfiles");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, object->filter)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, object->airmass)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "ra", 0, NULL, object->ra)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item ra");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, object->decl)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item decl");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddF32(md, PS_LIST_TAIL, "exp_time", 0, NULL, object->exp_time)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");
-        psFree(md);
-        return NULL;
-    }
-    if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, object->background)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item background");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "include", PS_DATA_BOOL, NULL, object->include)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item include");
+        psFree(md);
+        return NULL;
+    }
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "accept", PS_DATA_BOOL, NULL, object->accept)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item accept");
         psFree(md);
         return NULL;
@@ -14047,14 +13061,6 @@
     psS32           iteration;
     char            *exp_id;
-    char            *camera;
-    char            *telescope;
-    char            *exp_type;
-    psS32           imfiles;
-    char            *filter;
-    psF32           airmass;
-    psF64           ra;
-    psF64           decl;
-    psF32           exp_time;
-    psF64           background;
+    bool            include;
+    bool            accept;
 
     det_id = psMetadataLookupS32(&status, md, "det_id");
@@ -14073,56 +13079,16 @@
         return false;
     }
-    camera = psMetadataLookupPtr(&status, md, "camera");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item camera");
-        return false;
-    }
-    telescope = psMetadataLookupPtr(&status, md, "telescope");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item telescope");
-        return false;
-    }
-    exp_type = psMetadataLookupPtr(&status, md, "exp_type");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_type");
-        return false;
-    }
-    imfiles = psMetadataLookupS32(&status, md, "imfiles");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item imfiles");
-        return false;
-    }
-    filter = psMetadataLookupPtr(&status, md, "filter");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item filter");
-        return false;
-    }
-    airmass = psMetadataLookupF32(&status, md, "airmass");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item airmass");
-        return false;
-    }
-    ra = psMetadataLookupF64(&status, md, "ra");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ra");
-        return false;
-    }
-    decl = psMetadataLookupF64(&status, md, "decl");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item decl");
-        return false;
-    }
-    exp_time = psMetadataLookupF32(&status, md, "exp_time");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_time");
-        return false;
-    }
-    background = psMetadataLookupF64(&status, md, "background");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item background");
-        return false;
-    }
-
-    return detInputExpRowAlloc(det_id, iteration, exp_id, camera, telescope, exp_type, imfiles, filter, airmass, ra, decl, exp_time, background);
+    include = psMetadataLookupBool(&status, md, "include");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item include");
+        return false;
+    }
+    accept = psMetadataLookupBool(&status, md, "accept");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item accept");
+        return false;
+    }
+
+    return detInputExpRowAlloc(det_id, iteration, exp_id, include, accept);
 }
 psArray *detInputExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
Index: /trunk/ippdb/src/ippdb.h
===================================================================
--- /trunk/ippdb/src/ippdb.h	(revision 8282)
+++ /trunk/ippdb/src/ippdb.h	(revision 8283)
@@ -3004,5 +3004,11 @@
     psF64           decl;
     psF32           exp_time;
-    psF64           background;
+    psF64           bg;
+    psF64           bg_stdev;
+    psF64           bg_mean_stdev;
+    psF64           alt;
+    psF64           az;
+    psF32           ccd_temp;
+    psF64           posang;
 } rawDetrendExpRow;
 
@@ -3023,5 +3029,11 @@
     psF64           decl,
     psF32           exp_time,
-    psF64           background
+    psF64           bg,
+    psF64           bg_stdev,
+    psF64           bg_mean_stdev,
+    psF64           alt,
+    psF64           az,
+    psF32           ccd_temp,
+    psF64           posang
 );
 
@@ -3063,5 +3075,11 @@
     psF64           decl,
     psF32           exp_time,
-    psF64           background
+    psF64           bg,
+    psF64           bg_stdev,
+    psF64           bg_mean_stdev,
+    psF64           alt,
+    psF64           az,
+    psF32           ccd_temp,
+    psF64           posang
 );
 
@@ -3094,5 +3112,11 @@
     psF64           *decl,
     psF32           *exp_time,
-    psF64           *background
+    psF64           *bg,
+    psF64           *bg_stdev,
+    psF64           *bg_mean_stdev,
+    psF64           *alt,
+    psF64           *az,
+    psF32           *ccd_temp,
+    psF64           *posang
 );
 
@@ -3247,5 +3271,11 @@
     psF64           decl;
     psF32           exp_time;
-    psF64           background;
+    psF64           bg;
+    psF64           bg_stdev;
+    psF64           bg_mean_stdev;
+    psF64           alt;
+    psF64           az;
+    psF32           ccd_temp;
+    psF64           posang;
 } rawScienceExpRow;
 
@@ -3266,5 +3296,11 @@
     psF64           decl,
     psF32           exp_time,
-    psF64           background
+    psF64           bg,
+    psF64           bg_stdev,
+    psF64           bg_mean_stdev,
+    psF64           alt,
+    psF64           az,
+    psF32           ccd_temp,
+    psF64           posang
 );
 
@@ -3306,5 +3342,11 @@
     psF64           decl,
     psF32           exp_time,
-    psF64           background
+    psF64           bg,
+    psF64           bg_stdev,
+    psF64           bg_mean_stdev,
+    psF64           alt,
+    psF64           az,
+    psF32           ccd_temp,
+    psF64           posang
 );
 
@@ -3337,5 +3379,11 @@
     psF64           *decl,
     psF32           *exp_time,
-    psF64           *background
+    psF64           *bg,
+    psF64           *bg_stdev,
+    psF64           *bg_mean_stdev,
+    psF64           *alt,
+    psF64           *az,
+    psF32           *ccd_temp,
+    psF64           *posang
 );
 
@@ -3744,14 +3792,4 @@
 typedef struct {
     char            *exp_id;
-    char            *camera;
-    char            *telescope;
-    char            *exp_type;
-    psS32           imfiles;
-    char            *filter;
-    psF32           airmass;
-    psF64           ra;
-    psF64           decl;
-    psF32           exp_time;
-    psF64           background;
     char            *recipe;
     psS32           p1_version;
@@ -3765,14 +3803,4 @@
 p1PendingExpRow *p1PendingExpRowAlloc(
     const char      *exp_id,
-    const char      *camera,
-    const char      *telescope,
-    const char      *exp_type,
-    psS32           imfiles,
-    const char      *filter,
-    psF32           airmass,
-    psF64           ra,
-    psF64           decl,
-    psF32           exp_time,
-    psF64           background,
     const char      *recipe,
     psS32           p1_version
@@ -3807,14 +3835,4 @@
     psDB            *dbh,               ///< Database handle
     const char      *exp_id,
-    const char      *camera,
-    const char      *telescope,
-    const char      *exp_type,
-    psS32           imfiles,
-    const char      *filter,
-    psF32           airmass,
-    psF64           ra,
-    psF64           decl,
-    psF32           exp_time,
-    psF64           background,
     const char      *recipe,
     psS32           p1_version
@@ -3840,14 +3858,4 @@
     psDB            *dbh,               ///< Database handle
     char            **exp_id,
-    char            **camera,
-    char            **telescope,
-    char            **exp_type,
-    psS32           *imfiles,
-    char            **filter,
-    psF32           *airmass,
-    psF64           *ra,
-    psF64           *decl,
-    psF32           *exp_time,
-    psF64           *background,
     char            **recipe,
     psS32           *p1_version
@@ -3995,14 +4003,4 @@
 typedef struct {
     char            *exp_id;
-    char            *camera;
-    char            *telescope;
-    char            *exp_type;
-    psS32           imfiles;
-    char            *filter;
-    psF32           airmass;
-    psF32           ra;
-    psF64           decl;
-    psF64           exp_time;
-    psF64           background;
     char            *recipe;
     psS32           p1_version;
@@ -4017,14 +4015,4 @@
 p2PendingExpRow *p2PendingExpRowAlloc(
     const char      *exp_id,
-    const char      *camera,
-    const char      *telescope,
-    const char      *exp_type,
-    psS32           imfiles,
-    const char      *filter,
-    psF32           airmass,
-    psF32           ra,
-    psF64           decl,
-    psF64           exp_time,
-    psF64           background,
     const char      *recipe,
     psS32           p1_version,
@@ -4060,14 +4048,4 @@
     psDB            *dbh,               ///< Database handle
     const char      *exp_id,
-    const char      *camera,
-    const char      *telescope,
-    const char      *exp_type,
-    psS32           imfiles,
-    const char      *filter,
-    psF32           airmass,
-    psF32           ra,
-    psF64           decl,
-    psF64           exp_time,
-    psF64           background,
     const char      *recipe,
     psS32           p1_version,
@@ -4094,14 +4072,4 @@
     psDB            *dbh,               ///< Database handle
     char            **exp_id,
-    char            **camera,
-    char            **telescope,
-    char            **exp_type,
-    psS32           *imfiles,
-    char            **filter,
-    psF32           *airmass,
-    psF32           *ra,
-    psF64           *decl,
-    psF64           *exp_time,
-    psF64           *background,
     char            **recipe,
     psS32           *p1_version,
@@ -4473,14 +4441,4 @@
 typedef struct {
     char            *exp_id;
-    char            *camera;
-    char            *telescope;
-    char            *exp_type;
-    psS32           imfiles;
-    char            *filter;
-    psF32           airmass;
-    psF64           ra;
-    psF64           decl;
-    psF32           exp_time;
-    psF64           background;
     char            *recipe;
     psS32           p1_version;
@@ -4495,14 +4453,4 @@
 p2DoneExpRow *p2DoneExpRowAlloc(
     const char      *exp_id,
-    const char      *camera,
-    const char      *telescope,
-    const char      *exp_type,
-    psS32           imfiles,
-    const char      *filter,
-    psF32           airmass,
-    psF64           ra,
-    psF64           decl,
-    psF32           exp_time,
-    psF64           background,
     const char      *recipe,
     psS32           p1_version,
@@ -4538,14 +4486,4 @@
     psDB            *dbh,               ///< Database handle
     const char      *exp_id,
-    const char      *camera,
-    const char      *telescope,
-    const char      *exp_type,
-    psS32           imfiles,
-    const char      *filter,
-    psF32           airmass,
-    psF64           ra,
-    psF64           decl,
-    psF32           exp_time,
-    psF64           background,
     const char      *recipe,
     psS32           p1_version,
@@ -4572,14 +4510,4 @@
     psDB            *dbh,               ///< Database handle
     char            **exp_id,
-    char            **camera,
-    char            **telescope,
-    char            **exp_type,
-    psS32           *imfiles,
-    char            **filter,
-    psF32           *airmass,
-    psF64           *ra,
-    psF64           *decl,
-    psF32           *exp_time,
-    psF64           *background,
     char            **recipe,
     psS32           *p1_version,
@@ -4951,13 +4879,4 @@
 typedef struct {
     char            *exp_id;
-    char            *camera;
-    char            *exp_type;
-    psS32           imfiles;
-    char            *filter;
-    psF32           airmass;
-    psF64           ra;
-    psF64           decl;
-    psF32           exp_time;
-    psF64           background;
     char            *recipe;
     psS32           p2_version;
@@ -4972,13 +4891,4 @@
 p3PendingExpRow *p3PendingExpRowAlloc(
     const char      *exp_id,
-    const char      *camera,
-    const char      *exp_type,
-    psS32           imfiles,
-    const char      *filter,
-    psF32           airmass,
-    psF64           ra,
-    psF64           decl,
-    psF32           exp_time,
-    psF64           background,
     const char      *recipe,
     psS32           p2_version,
@@ -5014,13 +4924,4 @@
     psDB            *dbh,               ///< Database handle
     const char      *exp_id,
-    const char      *camera,
-    const char      *exp_type,
-    psS32           imfiles,
-    const char      *filter,
-    psF32           airmass,
-    psF64           ra,
-    psF64           decl,
-    psF32           exp_time,
-    psF64           background,
     const char      *recipe,
     psS32           p2_version,
@@ -5047,13 +4948,4 @@
     psDB            *dbh,               ///< Database handle
     char            **exp_id,
-    char            **camera,
-    char            **exp_type,
-    psS32           *imfiles,
-    char            **filter,
-    psF32           *airmass,
-    psF64           *ra,
-    psF64           *decl,
-    psF32           *exp_time,
-    psF64           *background,
     char            **recipe,
     psS32           *p2_version,
@@ -5411,14 +5303,6 @@
     psS32           iteration;
     char            *exp_id;
-    char            *camera;
-    char            *telescope;
-    char            *exp_type;
-    psS32           imfiles;
-    char            *filter;
-    psF32           airmass;
-    psF64           ra;
-    psF64           decl;
-    psF32           exp_time;
-    psF64           background;
+    bool            include;
+    bool            accept;
 } detInputExpRow;
 
@@ -5432,14 +5316,6 @@
     psS32           iteration,
     const char      *exp_id,
-    const char      *camera,
-    const char      *telescope,
-    const char      *exp_type,
-    psS32           imfiles,
-    const char      *filter,
-    psF32           airmass,
-    psF64           ra,
-    psF64           decl,
-    psF32           exp_time,
-    psF64           background
+    bool            include,
+    bool            accept
 );
 
@@ -5474,14 +5350,6 @@
     psS32           iteration,
     const char      *exp_id,
-    const char      *camera,
-    const char      *telescope,
-    const char      *exp_type,
-    psS32           imfiles,
-    const char      *filter,
-    psF32           airmass,
-    psF64           ra,
-    psF64           decl,
-    psF32           exp_time,
-    psF64           background
+    bool            include,
+    bool            accept
 );
 
@@ -5507,14 +5375,6 @@
     psS32           *iteration,
     char            **exp_id,
-    char            **camera,
-    char            **telescope,
-    char            **exp_type,
-    psS32           *imfiles,
-    char            **filter,
-    psF32           *airmass,
-    psF64           *ra,
-    psF64           *decl,
-    psF32           *exp_time,
-    psF64           *background
+    bool            *include,
+    bool            *accept
 );
 
Index: /trunk/ippdb/tests/alloc.c
===================================================================
--- /trunk/ippdb/tests/alloc.c	(revision 8282)
+++ /trunk/ippdb/tests/alloc.c	(revision 8283)
@@ -483,5 +483,5 @@
         rawDetrendExpRow *object;
 
-        object = rawDetrendExpRowAlloc("a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64    );
+        object = rawDetrendExpRowAlloc("a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64    );
 
         if (!object) {
@@ -529,5 +529,29 @@
             exit(EXIT_FAILURE);
         }
-        if (!object->background == 64.64) {
+        if (!object->bg == 64.64) {
+            psFree(object);
+            exit(EXIT_FAILURE);
+        }
+        if (!object->bg_stdev == 64.64) {
+            psFree(object);
+            exit(EXIT_FAILURE);
+        }
+        if (!object->bg_mean_stdev == 64.64) {
+            psFree(object);
+            exit(EXIT_FAILURE);
+        }
+        if (!object->alt == 64.64) {
+            psFree(object);
+            exit(EXIT_FAILURE);
+        }
+        if (!object->az == 64.64) {
+            psFree(object);
+            exit(EXIT_FAILURE);
+        }
+        if (!object->ccd_temp == 32.32) {
+            psFree(object);
+            exit(EXIT_FAILURE);
+        }
+        if (!object->posang == 64.64) {
             psFree(object);
             exit(EXIT_FAILURE);
@@ -540,5 +564,5 @@
         rawScienceExpRow *object;
 
-        object = rawScienceExpRowAlloc("a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64    );
+        object = rawScienceExpRowAlloc("a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64    );
 
         if (!object) {
@@ -586,5 +610,29 @@
             exit(EXIT_FAILURE);
         }
-        if (!object->background == 64.64) {
+        if (!object->bg == 64.64) {
+            psFree(object);
+            exit(EXIT_FAILURE);
+        }
+        if (!object->bg_stdev == 64.64) {
+            psFree(object);
+            exit(EXIT_FAILURE);
+        }
+        if (!object->bg_mean_stdev == 64.64) {
+            psFree(object);
+            exit(EXIT_FAILURE);
+        }
+        if (!object->alt == 64.64) {
+            psFree(object);
+            exit(EXIT_FAILURE);
+        }
+        if (!object->az == 64.64) {
+            psFree(object);
+            exit(EXIT_FAILURE);
+        }
+        if (!object->ccd_temp == 32.32) {
+            psFree(object);
+            exit(EXIT_FAILURE);
+        }
+        if (!object->posang == 64.64) {
             psFree(object);
             exit(EXIT_FAILURE);
@@ -674,51 +722,11 @@
         p1PendingExpRow *object;
 
-        object = p1PendingExpRowAlloc("a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64, "a string", -32    );
-
-        if (!object) {
-            exit(EXIT_FAILURE);
-        }
-
-        if (strncmp(object->exp_id, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(object->camera, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(object->telescope, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(object->exp_type, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->imfiles == -32) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(object->filter, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->airmass == 32.32) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->ra == 64.64) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->decl == 64.64) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->exp_time == 32.32) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->background == 64.64) {
+        object = p1PendingExpRowAlloc("a string", "a string", -32    );
+
+        if (!object) {
+            exit(EXIT_FAILURE);
+        }
+
+        if (strncmp(object->exp_id, "a string", MAX_STRING_LENGTH)) {
             psFree(object);
             exit(EXIT_FAILURE);
@@ -739,51 +747,11 @@
         p2PendingExpRow *object;
 
-        object = p2PendingExpRowAlloc("a string", "a string", "a string", "a string", -32, "a string", 32.32, 32.32, 64.64, 64.64, 64.64, "a string", -32, -32    );
-
-        if (!object) {
-            exit(EXIT_FAILURE);
-        }
-
-        if (strncmp(object->exp_id, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(object->camera, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(object->telescope, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(object->exp_type, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->imfiles == -32) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(object->filter, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->airmass == 32.32) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->ra == 32.32) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->decl == 64.64) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->exp_time == 64.64) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->background == 64.64) {
+        object = p2PendingExpRowAlloc("a string", "a string", -32, -32    );
+
+        if (!object) {
+            exit(EXIT_FAILURE);
+        }
+
+        if (strncmp(object->exp_id, "a string", MAX_STRING_LENGTH)) {
             psFree(object);
             exit(EXIT_FAILURE);
@@ -845,51 +813,11 @@
         p2DoneExpRow    *object;
 
-        object = p2DoneExpRowAlloc("a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64, "a string", -32, -32    );
-
-        if (!object) {
-            exit(EXIT_FAILURE);
-        }
-
-        if (strncmp(object->exp_id, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(object->camera, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(object->telescope, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(object->exp_type, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->imfiles == -32) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(object->filter, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->airmass == 32.32) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->ra == 64.64) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->decl == 64.64) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->exp_time == 32.32) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->background == 64.64) {
+        object = p2DoneExpRowAlloc("a string", "a string", -32, -32    );
+
+        if (!object) {
+            exit(EXIT_FAILURE);
+        }
+
+        if (strncmp(object->exp_id, "a string", MAX_STRING_LENGTH)) {
             psFree(object);
             exit(EXIT_FAILURE);
@@ -951,47 +879,11 @@
         p3PendingExpRow *object;
 
-        object = p3PendingExpRowAlloc("a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64, "a string", -32, -32    );
-
-        if (!object) {
-            exit(EXIT_FAILURE);
-        }
-
-        if (strncmp(object->exp_id, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(object->camera, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(object->exp_type, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->imfiles == -32) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(object->filter, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->airmass == 32.32) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->ra == 64.64) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->decl == 64.64) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->exp_time == 32.32) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->background == 64.64) {
+        object = p3PendingExpRowAlloc("a string", "a string", -32, -32    );
+
+        if (!object) {
+            exit(EXIT_FAILURE);
+        }
+
+        if (strncmp(object->exp_id, "a string", MAX_STRING_LENGTH)) {
             psFree(object);
             exit(EXIT_FAILURE);
@@ -1037,5 +929,5 @@
         detInputExpRow  *object;
 
-        object = detInputExpRowAlloc(-32, -32, "a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64    );
+        object = detInputExpRowAlloc(-32, -32, "a string", true, true    );
 
         if (!object) {
@@ -1055,41 +947,9 @@
             exit(EXIT_FAILURE);
         }
-        if (strncmp(object->camera, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(object->telescope, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(object->exp_type, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->imfiles == -32) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(object->filter, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->airmass == 32.32) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->ra == 64.64) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->decl == 64.64) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->exp_time == 32.32) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->background == 64.64) {
+        if (!object->include == true) {
+            psFree(object);
+            exit(EXIT_FAILURE);
+        }
+        if (!object->accept == true) {
             psFree(object);
             exit(EXIT_FAILURE);
Index: /trunk/ippdb/tests/insert.c
===================================================================
--- /trunk/ippdb/tests/insert.c	(revision 8282)
+++ /trunk/ippdb/tests/insert.c	(revision 8283)
@@ -208,20 +208,20 @@
         }
 
-        if (!rawDetrendExpInsert(dbh, "a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64)) {
-            exit(EXIT_FAILURE);
-        }
-
-        psDBCleanup(dbh);
-    }
-
-    {
-        psDB            *dbh;
-
-        dbh = psDBInit("localhost", "test", NULL, "test");
-        if (!dbh) {
-            exit(EXIT_FAILURE);
-        }
-
-        if (!rawScienceExpInsert(dbh, "a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64)) {
+        if (!rawDetrendExpInsert(dbh, "a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64)) {
+            exit(EXIT_FAILURE);
+        }
+
+        psDBCleanup(dbh);
+    }
+
+    {
+        psDB            *dbh;
+
+        dbh = psDBInit("localhost", "test", NULL, "test");
+        if (!dbh) {
+            exit(EXIT_FAILURE);
+        }
+
+        if (!rawScienceExpInsert(dbh, "a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64)) {
             exit(EXIT_FAILURE);
         }
@@ -253,20 +253,20 @@
         }
 
-        if (!p1PendingExpInsert(dbh, "a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64, "a string", -32)) {
-            exit(EXIT_FAILURE);
-        }
-
-        psDBCleanup(dbh);
-    }
-
-    {
-        psDB            *dbh;
-
-        dbh = psDBInit("localhost", "test", NULL, "test");
-        if (!dbh) {
-            exit(EXIT_FAILURE);
-        }
-
-        if (!p2PendingExpInsert(dbh, "a string", "a string", "a string", "a string", -32, "a string", 32.32, 32.32, 64.64, 64.64, 64.64, "a string", -32, -32)) {
+        if (!p1PendingExpInsert(dbh, "a string", "a string", -32)) {
+            exit(EXIT_FAILURE);
+        }
+
+        psDBCleanup(dbh);
+    }
+
+    {
+        psDB            *dbh;
+
+        dbh = psDBInit("localhost", "test", NULL, "test");
+        if (!dbh) {
+            exit(EXIT_FAILURE);
+        }
+
+        if (!p2PendingExpInsert(dbh, "a string", "a string", -32, -32)) {
             exit(EXIT_FAILURE);
         }
@@ -298,5 +298,5 @@
         }
 
-        if (!p2DoneExpInsert(dbh, "a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64, "a string", -32, -32)) {
+        if (!p2DoneExpInsert(dbh, "a string", "a string", -32, -32)) {
             exit(EXIT_FAILURE);
         }
@@ -328,5 +328,5 @@
         }
 
-        if (!p3PendingExpInsert(dbh, "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64, "a string", -32, -32)) {
+        if (!p3PendingExpInsert(dbh, "a string", "a string", -32, -32)) {
             exit(EXIT_FAILURE);
         }
@@ -358,5 +358,5 @@
         }
 
-        if (!detInputExpInsert(dbh, -32, -32, "a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64)) {
+        if (!detInputExpInsert(dbh, -32, -32, "a string", true, true)) {
             exit(EXIT_FAILURE);
         }
Index: /trunk/ippdb/tests/insertobject.c
===================================================================
--- /trunk/ippdb/tests/insertobject.c	(revision 8282)
+++ /trunk/ippdb/tests/insertobject.c	(revision 8283)
@@ -300,5 +300,5 @@
         }
 
-        object = rawDetrendExpRowAlloc("a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64);
+        object = rawDetrendExpRowAlloc("a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64);
         if (!object) {
             exit(EXIT_FAILURE);
@@ -322,5 +322,5 @@
         }
 
-        object = rawScienceExpRowAlloc("a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64);
+        object = rawScienceExpRowAlloc("a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64);
         if (!object) {
             exit(EXIT_FAILURE);
@@ -366,5 +366,5 @@
         }
 
-        object = p1PendingExpRowAlloc("a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64, "a string", -32);
+        object = p1PendingExpRowAlloc("a string", "a string", -32);
         if (!object) {
             exit(EXIT_FAILURE);
@@ -388,5 +388,5 @@
         }
 
-        object = p2PendingExpRowAlloc("a string", "a string", "a string", "a string", -32, "a string", 32.32, 32.32, 64.64, 64.64, 64.64, "a string", -32, -32);
+        object = p2PendingExpRowAlloc("a string", "a string", -32, -32);
         if (!object) {
             exit(EXIT_FAILURE);
@@ -432,5 +432,5 @@
         }
 
-        object = p2DoneExpRowAlloc("a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64, "a string", -32, -32);
+        object = p2DoneExpRowAlloc("a string", "a string", -32, -32);
         if (!object) {
             exit(EXIT_FAILURE);
@@ -476,5 +476,5 @@
         }
 
-        object = p3PendingExpRowAlloc("a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64, "a string", -32, -32);
+        object = p3PendingExpRowAlloc("a string", "a string", -32, -32);
         if (!object) {
             exit(EXIT_FAILURE);
@@ -520,5 +520,5 @@
         }
 
-        object = detInputExpRowAlloc(-32, -32, "a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64);
+        object = detInputExpRowAlloc(-32, -32, "a string", true, true);
         if (!object) {
             exit(EXIT_FAILURE);
Index: /trunk/ippdb/tests/metadatafromobject.c
===================================================================
--- /trunk/ippdb/tests/metadatafromobject.c	(revision 8282)
+++ /trunk/ippdb/tests/metadatafromobject.c	(revision 8283)
@@ -590,5 +590,5 @@
         bool            status;
 
-        object = rawDetrendExpRowAlloc("a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64);
+        object = rawDetrendExpRowAlloc("a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64);
         if (!object) {
             exit(EXIT_FAILURE);
@@ -642,5 +642,29 @@
             exit(EXIT_FAILURE);
         }
-        if (!psMetadataLookupF64(&status, md, "background") == 64.64) {
+        if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
+            psFree(md);
+            exit(EXIT_FAILURE);
+        }
+        if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
+            psFree(md);
+            exit(EXIT_FAILURE);
+        }
+        if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
+            psFree(md);
+            exit(EXIT_FAILURE);
+        }
+        if (!psMetadataLookupF64(&status, md, "alt") == 64.64) {
+            psFree(md);
+            exit(EXIT_FAILURE);
+        }
+        if (!psMetadataLookupF64(&status, md, "az") == 64.64) {
+            psFree(md);
+            exit(EXIT_FAILURE);
+        }
+        if (!psMetadataLookupF32(&status, md, "ccd_temp") == 32.32) {
+            psFree(md);
+            exit(EXIT_FAILURE);
+        }
+        if (!psMetadataLookupF64(&status, md, "posang") == 64.64) {
             psFree(md);
             exit(EXIT_FAILURE);
@@ -655,5 +679,5 @@
         bool            status;
 
-        object = rawScienceExpRowAlloc("a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64);
+        object = rawScienceExpRowAlloc("a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64, 64.64, 64.64, 64.64, 64.64, 32.32, 64.64);
         if (!object) {
             exit(EXIT_FAILURE);
@@ -707,5 +731,29 @@
             exit(EXIT_FAILURE);
         }
-        if (!psMetadataLookupF64(&status, md, "background") == 64.64) {
+        if (!psMetadataLookupF64(&status, md, "bg") == 64.64) {
+            psFree(md);
+            exit(EXIT_FAILURE);
+        }
+        if (!psMetadataLookupF64(&status, md, "bg_stdev") == 64.64) {
+            psFree(md);
+            exit(EXIT_FAILURE);
+        }
+        if (!psMetadataLookupF64(&status, md, "bg_mean_stdev") == 64.64) {
+            psFree(md);
+            exit(EXIT_FAILURE);
+        }
+        if (!psMetadataLookupF64(&status, md, "alt") == 64.64) {
+            psFree(md);
+            exit(EXIT_FAILURE);
+        }
+        if (!psMetadataLookupF64(&status, md, "az") == 64.64) {
+            psFree(md);
+            exit(EXIT_FAILURE);
+        }
+        if (!psMetadataLookupF32(&status, md, "ccd_temp") == 32.32) {
+            psFree(md);
+            exit(EXIT_FAILURE);
+        }
+        if (!psMetadataLookupF64(&status, md, "posang") == 64.64) {
             psFree(md);
             exit(EXIT_FAILURE);
@@ -805,5 +853,5 @@
         bool            status;
 
-        object = p1PendingExpRowAlloc("a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64, "a string", -32);
+        object = p1PendingExpRowAlloc("a string", "a string", -32);
         if (!object) {
             exit(EXIT_FAILURE);
@@ -821,44 +869,4 @@
             exit(EXIT_FAILURE);
         }
-        if (strncmp(psMetadataLookupPtr(&status, md, "camera"), "a string", MAX_STRING_LENGTH)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(psMetadataLookupPtr(&status, md, "telescope"), "a string", MAX_STRING_LENGTH)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(psMetadataLookupPtr(&status, md, "exp_type"), "a string", MAX_STRING_LENGTH)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataLookupS32(&status, md, "imfiles") == -32) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(psMetadataLookupPtr(&status, md, "filter"), "a string", MAX_STRING_LENGTH)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataLookupF32(&status, md, "airmass") == 32.32) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataLookupF64(&status, md, "ra") == 64.64) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataLookupF64(&status, md, "decl") == 64.64) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataLookupF32(&status, md, "exp_time") == 32.32) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataLookupF64(&status, md, "background") == 64.64) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
         if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
             psFree(md);
@@ -878,5 +886,5 @@
         bool            status;
 
-        object = p2PendingExpRowAlloc("a string", "a string", "a string", "a string", -32, "a string", 32.32, 32.32, 64.64, 64.64, 64.64, "a string", -32, -32);
+        object = p2PendingExpRowAlloc("a string", "a string", -32, -32);
         if (!object) {
             exit(EXIT_FAILURE);
@@ -894,44 +902,4 @@
             exit(EXIT_FAILURE);
         }
-        if (strncmp(psMetadataLookupPtr(&status, md, "camera"), "a string", MAX_STRING_LENGTH)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(psMetadataLookupPtr(&status, md, "telescope"), "a string", MAX_STRING_LENGTH)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(psMetadataLookupPtr(&status, md, "exp_type"), "a string", MAX_STRING_LENGTH)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataLookupS32(&status, md, "imfiles") == -32) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(psMetadataLookupPtr(&status, md, "filter"), "a string", MAX_STRING_LENGTH)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataLookupF32(&status, md, "airmass") == 32.32) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataLookupF32(&status, md, "ra") == 32.32) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataLookupF64(&status, md, "decl") == 64.64) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataLookupF64(&status, md, "exp_time") == 64.64) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataLookupF64(&status, md, "background") == 64.64) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
         if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
             psFree(md);
@@ -1000,5 +968,5 @@
         bool            status;
 
-        object = p2DoneExpRowAlloc("a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64, "a string", -32, -32);
+        object = p2DoneExpRowAlloc("a string", "a string", -32, -32);
         if (!object) {
             exit(EXIT_FAILURE);
@@ -1016,44 +984,4 @@
             exit(EXIT_FAILURE);
         }
-        if (strncmp(psMetadataLookupPtr(&status, md, "camera"), "a string", MAX_STRING_LENGTH)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(psMetadataLookupPtr(&status, md, "telescope"), "a string", MAX_STRING_LENGTH)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(psMetadataLookupPtr(&status, md, "exp_type"), "a string", MAX_STRING_LENGTH)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataLookupS32(&status, md, "imfiles") == -32) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(psMetadataLookupPtr(&status, md, "filter"), "a string", MAX_STRING_LENGTH)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataLookupF32(&status, md, "airmass") == 32.32) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataLookupF64(&status, md, "ra") == 64.64) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataLookupF64(&status, md, "decl") == 64.64) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataLookupF32(&status, md, "exp_time") == 32.32) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataLookupF64(&status, md, "background") == 64.64) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
         if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
             psFree(md);
@@ -1122,5 +1050,5 @@
         bool            status;
 
-        object = p3PendingExpRowAlloc("a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64, "a string", -32, -32);
+        object = p3PendingExpRowAlloc("a string", "a string", -32, -32);
         if (!object) {
             exit(EXIT_FAILURE);
@@ -1138,40 +1066,4 @@
             exit(EXIT_FAILURE);
         }
-        if (strncmp(psMetadataLookupPtr(&status, md, "camera"), "a string", MAX_STRING_LENGTH)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(psMetadataLookupPtr(&status, md, "exp_type"), "a string", MAX_STRING_LENGTH)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataLookupS32(&status, md, "imfiles") == -32) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(psMetadataLookupPtr(&status, md, "filter"), "a string", MAX_STRING_LENGTH)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataLookupF32(&status, md, "airmass") == 32.32) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataLookupF64(&status, md, "ra") == 64.64) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataLookupF64(&status, md, "decl") == 64.64) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataLookupF32(&status, md, "exp_time") == 32.32) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataLookupF64(&status, md, "background") == 64.64) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
         if (strncmp(psMetadataLookupPtr(&status, md, "recipe"), "a string", MAX_STRING_LENGTH)) {
             psFree(md);
@@ -1224,5 +1116,5 @@
         bool            status;
 
-        object = detInputExpRowAlloc(-32, -32, "a string", "a string", "a string", "a string", -32, "a string", 32.32, 64.64, 64.64, 32.32, 64.64);
+        object = detInputExpRowAlloc(-32, -32, "a string", true, true);
         if (!object) {
             exit(EXIT_FAILURE);
@@ -1248,41 +1140,9 @@
             exit(EXIT_FAILURE);
         }
-        if (strncmp(psMetadataLookupPtr(&status, md, "camera"), "a string", MAX_STRING_LENGTH)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(psMetadataLookupPtr(&status, md, "telescope"), "a string", MAX_STRING_LENGTH)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(psMetadataLookupPtr(&status, md, "exp_type"), "a string", MAX_STRING_LENGTH)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataLookupS32(&status, md, "imfiles") == -32) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(psMetadataLookupPtr(&status, md, "filter"), "a string", MAX_STRING_LENGTH)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataLookupF32(&status, md, "airmass") == 32.32) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataLookupF64(&status, md, "ra") == 64.64) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataLookupF64(&status, md, "decl") == 64.64) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataLookupF32(&status, md, "exp_time") == 32.32) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataLookupF64(&status, md, "background") == 64.64) {
+        if (!psMetadataLookupBool(&status, md, "include") == true) {
+            psFree(md);
+            exit(EXIT_FAILURE);
+        }
+        if (!psMetadataLookupBool(&status, md, "accept") == true) {
             psFree(md);
             exit(EXIT_FAILURE);
Index: /trunk/ippdb/tests/objectfrommetadata.c
===================================================================
--- /trunk/ippdb/tests/objectfrommetadata.c	(revision 8282)
+++ /trunk/ippdb/tests/objectfrommetadata.c	(revision 8283)
@@ -895,5 +895,29 @@
             exit(EXIT_FAILURE);
         }
-        if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, 64.64)) {
+        if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, 64.64)) {
+            psFree(md);
+            exit(EXIT_FAILURE);
+        }
+        if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, 64.64)) {
+            psFree(md);
+            exit(EXIT_FAILURE);
+        }
+        if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, 64.64)) {
+            psFree(md);
+            exit(EXIT_FAILURE);
+        }
+        if (!psMetadataAddF64(md, PS_LIST_TAIL, "alt", 0, NULL, 64.64)) {
+            psFree(md);
+            exit(EXIT_FAILURE);
+        }
+        if (!psMetadataAddF64(md, PS_LIST_TAIL, "az", 0, NULL, 64.64)) {
+            psFree(md);
+            exit(EXIT_FAILURE);
+        }
+        if (!psMetadataAddF32(md, PS_LIST_TAIL, "ccd_temp", 0, NULL, 32.32)) {
+            psFree(md);
+            exit(EXIT_FAILURE);
+        }
+        if (!psMetadataAddF64(md, PS_LIST_TAIL, "posang", 0, NULL, 64.64)) {
             psFree(md);
             exit(EXIT_FAILURE);
@@ -948,5 +972,29 @@
             exit(EXIT_FAILURE);
         }
-        if (!object->background == 64.64) {
+        if (!object->bg == 64.64) {
+            psFree(object);
+            exit(EXIT_FAILURE);
+        }
+        if (!object->bg_stdev == 64.64) {
+            psFree(object);
+            exit(EXIT_FAILURE);
+        }
+        if (!object->bg_mean_stdev == 64.64) {
+            psFree(object);
+            exit(EXIT_FAILURE);
+        }
+        if (!object->alt == 64.64) {
+            psFree(object);
+            exit(EXIT_FAILURE);
+        }
+        if (!object->az == 64.64) {
+            psFree(object);
+            exit(EXIT_FAILURE);
+        }
+        if (!object->ccd_temp == 32.32) {
+            psFree(object);
+            exit(EXIT_FAILURE);
+        }
+        if (!object->posang == 64.64) {
             psFree(object);
             exit(EXIT_FAILURE);
@@ -1001,5 +1049,29 @@
             exit(EXIT_FAILURE);
         }
-        if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, 64.64)) {
+        if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg", 0, NULL, 64.64)) {
+            psFree(md);
+            exit(EXIT_FAILURE);
+        }
+        if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_stdev", 0, NULL, 64.64)) {
+            psFree(md);
+            exit(EXIT_FAILURE);
+        }
+        if (!psMetadataAddF64(md, PS_LIST_TAIL, "bg_mean_stdev", 0, NULL, 64.64)) {
+            psFree(md);
+            exit(EXIT_FAILURE);
+        }
+        if (!psMetadataAddF64(md, PS_LIST_TAIL, "alt", 0, NULL, 64.64)) {
+            psFree(md);
+            exit(EXIT_FAILURE);
+        }
+        if (!psMetadataAddF64(md, PS_LIST_TAIL, "az", 0, NULL, 64.64)) {
+            psFree(md);
+            exit(EXIT_FAILURE);
+        }
+        if (!psMetadataAddF32(md, PS_LIST_TAIL, "ccd_temp", 0, NULL, 32.32)) {
+            psFree(md);
+            exit(EXIT_FAILURE);
+        }
+        if (!psMetadataAddF64(md, PS_LIST_TAIL, "posang", 0, NULL, 64.64)) {
             psFree(md);
             exit(EXIT_FAILURE);
@@ -1054,5 +1126,29 @@
             exit(EXIT_FAILURE);
         }
-        if (!object->background == 64.64) {
+        if (!object->bg == 64.64) {
+            psFree(object);
+            exit(EXIT_FAILURE);
+        }
+        if (!object->bg_stdev == 64.64) {
+            psFree(object);
+            exit(EXIT_FAILURE);
+        }
+        if (!object->bg_mean_stdev == 64.64) {
+            psFree(object);
+            exit(EXIT_FAILURE);
+        }
+        if (!object->alt == 64.64) {
+            psFree(object);
+            exit(EXIT_FAILURE);
+        }
+        if (!object->az == 64.64) {
+            psFree(object);
+            exit(EXIT_FAILURE);
+        }
+        if (!object->ccd_temp == 32.32) {
+            psFree(object);
+            exit(EXIT_FAILURE);
+        }
+        if (!object->posang == 64.64) {
             psFree(object);
             exit(EXIT_FAILURE);
@@ -1217,44 +1313,4 @@
             exit(EXIT_FAILURE);
         }
-        if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, "a string")) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddStr(md, PS_LIST_TAIL, "telescope", 0, NULL, "a string")) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, "a string")) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddS32(md, PS_LIST_TAIL, "imfiles", 0, NULL, -32)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, "a string")) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, 32.32)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddF64(md, PS_LIST_TAIL, "ra", 0, NULL, 64.64)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, 64.64)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddF32(md, PS_LIST_TAIL, "exp_time", 0, NULL, 32.32)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, 64.64)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
         if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, "a string")) {
             psFree(md);
@@ -1278,44 +1334,4 @@
             exit(EXIT_FAILURE);
         }
-        if (strncmp(object->camera, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(object->telescope, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(object->exp_type, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->imfiles == -32) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(object->filter, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->airmass == 32.32) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->ra == 64.64) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->decl == 64.64) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->exp_time == 32.32) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->background == 64.64) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
         if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
             psFree(object);
@@ -1339,44 +1355,4 @@
             exit(EXIT_FAILURE);
         }
-        if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, "a string")) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddStr(md, PS_LIST_TAIL, "telescope", 0, NULL, "a string")) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, "a string")) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddS32(md, PS_LIST_TAIL, "imfiles", 0, NULL, -32)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, "a string")) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, 32.32)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddF32(md, PS_LIST_TAIL, "ra", 0, NULL, 32.32)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, 64.64)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddF64(md, PS_LIST_TAIL, "exp_time", 0, NULL, 64.64)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, 64.64)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
         if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, "a string")) {
             psFree(md);
@@ -1404,44 +1380,4 @@
             exit(EXIT_FAILURE);
         }
-        if (strncmp(object->camera, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(object->telescope, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(object->exp_type, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->imfiles == -32) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(object->filter, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->airmass == 32.32) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->ra == 32.32) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->decl == 64.64) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->exp_time == 64.64) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->background == 64.64) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
         if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
             psFree(object);
@@ -1535,44 +1471,4 @@
             exit(EXIT_FAILURE);
         }
-        if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, "a string")) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddStr(md, PS_LIST_TAIL, "telescope", 0, NULL, "a string")) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, "a string")) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddS32(md, PS_LIST_TAIL, "imfiles", 0, NULL, -32)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, "a string")) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, 32.32)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddF64(md, PS_LIST_TAIL, "ra", 0, NULL, 64.64)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, 64.64)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddF32(md, PS_LIST_TAIL, "exp_time", 0, NULL, 32.32)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, 64.64)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
         if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, "a string")) {
             psFree(md);
@@ -1600,44 +1496,4 @@
             exit(EXIT_FAILURE);
         }
-        if (strncmp(object->camera, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(object->telescope, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(object->exp_type, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->imfiles == -32) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(object->filter, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->airmass == 32.32) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->ra == 64.64) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->decl == 64.64) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->exp_time == 32.32) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->background == 64.64) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
         if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
             psFree(object);
@@ -1731,40 +1587,4 @@
             exit(EXIT_FAILURE);
         }
-        if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, "a string")) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, "a string")) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddS32(md, PS_LIST_TAIL, "imfiles", 0, NULL, -32)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, "a string")) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, 32.32)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddF64(md, PS_LIST_TAIL, "ra", 0, NULL, 64.64)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, 64.64)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddF32(md, PS_LIST_TAIL, "exp_time", 0, NULL, 32.32)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, 64.64)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
         if (!psMetadataAddStr(md, PS_LIST_TAIL, "recipe", 0, NULL, "a string")) {
             psFree(md);
@@ -1792,40 +1612,4 @@
             exit(EXIT_FAILURE);
         }
-        if (strncmp(object->camera, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(object->exp_type, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->imfiles == -32) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(object->filter, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->airmass == 32.32) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->ra == 64.64) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->decl == 64.64) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->exp_time == 32.32) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->background == 64.64) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
         if (strncmp(object->recipe, "a string", MAX_STRING_LENGTH)) {
             psFree(object);
@@ -1895,41 +1679,9 @@
             exit(EXIT_FAILURE);
         }
-        if (!psMetadataAddStr(md, PS_LIST_TAIL, "camera", 0, NULL, "a string")) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddStr(md, PS_LIST_TAIL, "telescope", 0, NULL, "a string")) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddStr(md, PS_LIST_TAIL, "exp_type", 0, NULL, "a string")) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddS32(md, PS_LIST_TAIL, "imfiles", 0, NULL, -32)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddStr(md, PS_LIST_TAIL, "filter", 0, NULL, "a string")) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddF32(md, PS_LIST_TAIL, "airmass", 0, NULL, 32.32)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddF64(md, PS_LIST_TAIL, "ra", 0, NULL, 64.64)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddF64(md, PS_LIST_TAIL, "decl", 0, NULL, 64.64)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddF32(md, PS_LIST_TAIL, "exp_time", 0, NULL, 32.32)) {
-            psFree(md);
-            exit(EXIT_FAILURE);
-        }
-        if (!psMetadataAddF64(md, PS_LIST_TAIL, "background", 0, NULL, 64.64)) {
+        if (!psMetadataAdd(md, PS_LIST_TAIL, "include", PS_DATA_BOOL, NULL, true)) {
+            psFree(md);
+            exit(EXIT_FAILURE);
+        }
+        if (!psMetadataAdd(md, PS_LIST_TAIL, "accept", PS_DATA_BOOL, NULL, true)) {
             psFree(md);
             exit(EXIT_FAILURE);
@@ -1956,41 +1708,9 @@
             exit(EXIT_FAILURE);
         }
-        if (strncmp(object->camera, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(object->telescope, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(object->exp_type, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->imfiles == -32) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (strncmp(object->filter, "a string", MAX_STRING_LENGTH)) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->airmass == 32.32) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->ra == 64.64) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->decl == 64.64) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->exp_time == 32.32) {
-            psFree(object);
-            exit(EXIT_FAILURE);
-        }
-        if (!object->background == 64.64) {
+        if (!object->include == true) {
+            psFree(object);
+            exit(EXIT_FAILURE);
+        }
+        if (!object->accept == true) {
             psFree(object);
             exit(EXIT_FAILURE);
Index: /trunk/ippdb/tests/pop.c
===================================================================
--- /trunk/ippdb/tests/pop.c	(revision 8282)
+++ /trunk/ippdb/tests/pop.c	(revision 8283)
@@ -283,55 +283,4 @@
         char            exp_type[256];
         psS32           imfiles;
-        char            filter[256];
-        psF32           airmass;
-        psF64           ra;
-        psF64           decl;
-        psF32           exp_time;
-        psF64           background;
-
-        dbh = psDBInit("localhost", "test", NULL, "test");
-        if (!dbh) {
-            exit(EXIT_FAILURE);
-        }
-
-        if (!rawDetrendExpPop(dbh, (char **)&exp_id, (char **)&camera, (char **)&telescope, (char **)&exp_type, &imfiles, (char **)&filter, &airmass, &ra, &decl, &exp_time, &background)) { 
-            exit(EXIT_FAILURE);
-        }
-
-        psDBCleanup(dbh);
-    }
-
-    {
-        psDB            *dbh;
-        char            exp_id[256];
-        char            camera[256];
-        char            telescope[256];
-        char            exp_type[256];
-        psS32           imfiles;
-        char            filter[256];
-        psF32           airmass;
-        psF64           ra;
-        psF64           decl;
-        psF32           exp_time;
-        psF64           background;
-
-        dbh = psDBInit("localhost", "test", NULL, "test");
-        if (!dbh) {
-            exit(EXIT_FAILURE);
-        }
-
-        if (!rawScienceExpPop(dbh, (char **)&exp_id, (char **)&camera, (char **)&telescope, (char **)&exp_type, &imfiles, (char **)&filter, &airmass, &ra, &decl, &exp_time, &background)) { 
-            exit(EXIT_FAILURE);
-        }
-
-        psDBCleanup(dbh);
-    }
-
-    {
-        psDB            *dbh;
-        char            exp_id[256];
-        char            class[256];
-        char            class_id[256];
-        char            uri[256];
         char            filter[256];
         psF32           airmass;
@@ -352,5 +301,5 @@
         }
 
-        if (!rawImfilePop(dbh, (char **)&exp_id, (char **)&class, (char **)&class_id, (char **)&uri, (char **)&filter, &airmass, &ra, &decl, &exp_time, &bg, &bg_stdev, &bg_mean_stdev, &alt, &az, &ccd_temp, &posang)) { 
+        if (!rawDetrendExpPop(dbh, (char **)&exp_id, (char **)&camera, (char **)&telescope, (char **)&exp_type, &imfiles, (char **)&filter, &airmass, &ra, &decl, &exp_time, &bg, &bg_stdev, &bg_mean_stdev, &alt, &az, &ccd_temp, &posang)) { 
             exit(EXIT_FAILURE);
         }
@@ -371,33 +320,76 @@
         psF64           decl;
         psF32           exp_time;
-        psF64           background;
-        char            recipe[256];
-        psS32           p1_version;
-
-        dbh = psDBInit("localhost", "test", NULL, "test");
-        if (!dbh) {
-            exit(EXIT_FAILURE);
-        }
-
-        if (!p1PendingExpPop(dbh, (char **)&exp_id, (char **)&camera, (char **)&telescope, (char **)&exp_type, &imfiles, (char **)&filter, &airmass, &ra, &decl, &exp_time, &background, (char **)&recipe, &p1_version)) { 
-            exit(EXIT_FAILURE);
-        }
-
-        psDBCleanup(dbh);
-    }
-
-    {
-        psDB            *dbh;
-        char            exp_id[256];
-        char            camera[256];
-        char            telescope[256];
-        char            exp_type[256];
-        psS32           imfiles;
+        psF64           bg;
+        psF64           bg_stdev;
+        psF64           bg_mean_stdev;
+        psF64           alt;
+        psF64           az;
+        psF32           ccd_temp;
+        psF64           posang;
+
+        dbh = psDBInit("localhost", "test", NULL, "test");
+        if (!dbh) {
+            exit(EXIT_FAILURE);
+        }
+
+        if (!rawScienceExpPop(dbh, (char **)&exp_id, (char **)&camera, (char **)&telescope, (char **)&exp_type, &imfiles, (char **)&filter, &airmass, &ra, &decl, &exp_time, &bg, &bg_stdev, &bg_mean_stdev, &alt, &az, &ccd_temp, &posang)) { 
+            exit(EXIT_FAILURE);
+        }
+
+        psDBCleanup(dbh);
+    }
+
+    {
+        psDB            *dbh;
+        char            exp_id[256];
+        char            class[256];
+        char            class_id[256];
+        char            uri[256];
         char            filter[256];
         psF32           airmass;
-        psF32           ra;
-        psF64           decl;
-        psF64           exp_time;
-        psF64           background;
+        psF64           ra;
+        psF64           decl;
+        psF32           exp_time;
+        psF64           bg;
+        psF64           bg_stdev;
+        psF64           bg_mean_stdev;
+        psF64           alt;
+        psF64           az;
+        psF32           ccd_temp;
+        psF64           posang;
+
+        dbh = psDBInit("localhost", "test", NULL, "test");
+        if (!dbh) {
+            exit(EXIT_FAILURE);
+        }
+
+        if (!rawImfilePop(dbh, (char **)&exp_id, (char **)&class, (char **)&class_id, (char **)&uri, (char **)&filter, &airmass, &ra, &decl, &exp_time, &bg, &bg_stdev, &bg_mean_stdev, &alt, &az, &ccd_temp, &posang)) { 
+            exit(EXIT_FAILURE);
+        }
+
+        psDBCleanup(dbh);
+    }
+
+    {
+        psDB            *dbh;
+        char            exp_id[256];
+        char            recipe[256];
+        psS32           p1_version;
+
+        dbh = psDBInit("localhost", "test", NULL, "test");
+        if (!dbh) {
+            exit(EXIT_FAILURE);
+        }
+
+        if (!p1PendingExpPop(dbh, (char **)&exp_id, (char **)&recipe, &p1_version)) { 
+            exit(EXIT_FAILURE);
+        }
+
+        psDBCleanup(dbh);
+    }
+
+    {
+        psDB            *dbh;
+        char            exp_id[256];
         char            recipe[256];
         psS32           p1_version;
@@ -409,5 +401,5 @@
         }
 
-        if (!p2PendingExpPop(dbh, (char **)&exp_id, (char **)&camera, (char **)&telescope, (char **)&exp_type, &imfiles, (char **)&filter, &airmass, &ra, &decl, &exp_time, &background, (char **)&recipe, &p1_version, &p2_version)) { 
+        if (!p2PendingExpPop(dbh, (char **)&exp_id, (char **)&recipe, &p1_version, &p2_version)) { 
             exit(EXIT_FAILURE);
         }
@@ -440,14 +432,4 @@
         psDB            *dbh;
         char            exp_id[256];
-        char            camera[256];
-        char            telescope[256];
-        char            exp_type[256];
-        psS32           imfiles;
-        char            filter[256];
-        psF32           airmass;
-        psF64           ra;
-        psF64           decl;
-        psF32           exp_time;
-        psF64           background;
         char            recipe[256];
         psS32           p1_version;
@@ -459,5 +441,5 @@
         }
 
-        if (!p2DoneExpPop(dbh, (char **)&exp_id, (char **)&camera, (char **)&telescope, (char **)&exp_type, &imfiles, (char **)&filter, &airmass, &ra, &decl, &exp_time, &background, (char **)&recipe, &p1_version, &p2_version)) { 
+        if (!p2DoneExpPop(dbh, (char **)&exp_id, (char **)&recipe, &p1_version, &p2_version)) { 
             exit(EXIT_FAILURE);
         }
@@ -490,13 +472,4 @@
         psDB            *dbh;
         char            exp_id[256];
-        char            camera[256];
-        char            exp_type[256];
-        psS32           imfiles;
-        char            filter[256];
-        psF32           airmass;
-        psF64           ra;
-        psF64           decl;
-        psF32           exp_time;
-        psF64           background;
         char            recipe[256];
         psS32           p2_version;
@@ -508,5 +481,5 @@
         }
 
-        if (!p3PendingExpPop(dbh, (char **)&exp_id, (char **)&camera, (char **)&exp_type, &imfiles, (char **)&filter, &airmass, &ra, &decl, &exp_time, &background, (char **)&recipe, &p2_version, &p3_version)) { 
+        if (!p3PendingExpPop(dbh, (char **)&exp_id, (char **)&recipe, &p2_version, &p3_version)) { 
             exit(EXIT_FAILURE);
         }
@@ -537,21 +510,13 @@
         psS32           iteration;
         char            exp_id[256];
-        char            camera[256];
-        char            telescope[256];
-        char            exp_type[256];
-        psS32           imfiles;
-        char            filter[256];
-        psF32           airmass;
-        psF64           ra;
-        psF64           decl;
-        psF32           exp_time;
-        psF64           background;
-
-        dbh = psDBInit("localhost", "test", NULL, "test");
-        if (!dbh) {
-            exit(EXIT_FAILURE);
-        }
-
-        if (!detInputExpPop(dbh, &det_id, &iteration, (char **)&exp_id, (char **)&camera, (char **)&telescope, (char **)&exp_type, &imfiles, (char **)&filter, &airmass, &ra, &decl, &exp_time, &background)) { 
+        bool            include;
+        bool            accept;
+
+        dbh = psDBInit("localhost", "test", NULL, "test");
+        if (!dbh) {
+            exit(EXIT_FAILURE);
+        }
+
+        if (!detInputExpPop(dbh, &det_id, &iteration, (char **)&exp_id, &include, &accept)) { 
             exit(EXIT_FAILURE);
         }
