Index: trunk/ippdb/src/ippdb.c
===================================================================
--- trunk/ippdb/src/ippdb.c	(revision 11988)
+++ trunk/ippdb/src/ippdb.c	(revision 12026)
@@ -42,13 +42,13 @@
 #define RAWEXP_TABLE_NAME "rawExp"
 #define RAWIMFILE_TABLE_NAME "rawImfile"
-#define P1PENDINGEXP_TABLE_NAME "p1PendingExp"
-#define P2PENDINGEXP_TABLE_NAME "p2PendingExp"
-#define P2PENDINGIMFILE_TABLE_NAME "p2PendingImfile"
-#define P2PROCESSEDEXP_TABLE_NAME "p2ProcessedExp"
-#define P2MASK_TABLE_NAME "p2Mask"
-#define P2PROCESSEDIMFILE_TABLE_NAME "p2ProcessedImfile"
-#define P3PENDINGEXP_TABLE_NAME "p3PendingExp"
-#define P3PROCESSEDEXP_TABLE_NAME "p3ProcessedExp"
-#define P3MASK_TABLE_NAME "p3Mask"
+#define GUIDEPENDINGEXP_TABLE_NAME "guidePendingExp"
+#define CHIPPENDINGEXP_TABLE_NAME "chipPendingExp"
+#define CHIPPENDINGIMFILE_TABLE_NAME "chipPendingImfile"
+#define CHIPPROCESSEDEXP_TABLE_NAME "chipProcessedExp"
+#define CHIPMASK_TABLE_NAME "chipMask"
+#define CHIPPROCESSEDIMFILE_TABLE_NAME "chipProcessedImfile"
+#define CAMPENDINGEXP_TABLE_NAME "camPendingExp"
+#define CAMPROCESSEDEXP_TABLE_NAME "camProcessedExp"
+#define CAMMASK_TABLE_NAME "camMask"
 #define DETRUN_TABLE_NAME "detRun"
 #define DETINPUTEXP_TABLE_NAME "detInputExp"
@@ -62,14 +62,14 @@
 #define DETRESIDEXP_TABLE_NAME "detResidExp"
 #define DETRUNSUMMARY_TABLE_NAME "detRunSummary"
-#define P4RUN_TABLE_NAME "p4Run"
-#define P4INPUTEXP_TABLE_NAME "p4InputExp"
-#define P4SKYCELLMAP_TABLE_NAME "p4SkyCellMap"
-#define P4SKYFILE_TABLE_NAME "p4Skyfile"
-#define P5RUN_TABLE_NAME "p5Run"
-#define P5INPUTSKYFILE_TABLE_NAME "p5InputSkyfile"
-#define P5DIFFSKYFILE_TABLE_NAME "p5DiffSkyfile"
-#define P6RUN_TABLE_NAME "p6Run"
-#define P6INPUTSKYFILE_TABLE_NAME "p6InputSkyfile"
-#define P6SUMSKYFILE_TABLE_NAME "p6SumSkyfile"
+#define WARPRUN_TABLE_NAME "warpRun"
+#define WARPINPUTEXP_TABLE_NAME "warpInputExp"
+#define WARPSKYCELLMAP_TABLE_NAME "warpSkyCellMap"
+#define WARPSKYFILE_TABLE_NAME "warpSkyfile"
+#define DIFFRUN_TABLE_NAME "diffRun"
+#define DIFFINPUTSKYFILE_TABLE_NAME "diffInputSkyfile"
+#define DIFFSKYFILE_TABLE_NAME "diffSkyfile"
+#define STACKRUN_TABLE_NAME "stackRun"
+#define STACKINPUTSKYFILE_TABLE_NAME "stackInputSkyfile"
+#define STACKSUMSKYFILE_TABLE_NAME "stackSumSkyfile"
 #define MAX_STRING_LENGTH 1024
 
@@ -4948,15 +4948,15 @@
     return true;
 }
-static void p1PendingExpRowFree(p1PendingExpRow *object);
-
-p1PendingExpRow *p1PendingExpRowAlloc(const char *exp_tag, psS32 p1_version, const char *recipe)
-{
-    p1PendingExpRow *_object;
-
-    _object = psAlloc(sizeof(p1PendingExpRow));
-    psMemSetDeallocator(_object, (psFreeFunc)p1PendingExpRowFree);
+static void guidePendingExpRowFree(guidePendingExpRow *object);
+
+guidePendingExpRow *guidePendingExpRowAlloc(const char *exp_tag, psS32 guide_version, const char *recipe)
+{
+    guidePendingExpRow *_object;
+
+    _object = psAlloc(sizeof(guidePendingExpRow));
+    psMemSetDeallocator(_object, (psFreeFunc)guidePendingExpRowFree);
 
     _object->exp_tag = psStringCopy(exp_tag);
-    _object->p1_version = p1_version;
+    _object->guide_version = guide_version;
     _object->recipe = psStringCopy(recipe);
 
@@ -4964,5 +4964,5 @@
 }
 
-static void p1PendingExpRowFree(p1PendingExpRow *object)
+static void guidePendingExpRowFree(guidePendingExpRow *object)
 {
     psFree(object->exp_tag);
@@ -4970,5 +4970,5 @@
 }
 
-bool p1PendingExpCreateTable(psDB *dbh)
+bool guidePendingExpCreateTable(psDB *dbh)
 {
     psMetadata *md = psMetadataAlloc();
@@ -4978,6 +4978,6 @@
         return false;
     }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p1_version", PS_DATA_S32, "Primary Key", 0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p1_version");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "guide_version", PS_DATA_S32, "Primary Key", 0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item guide_version");
         psFree(md);
         return false;
@@ -4989,5 +4989,5 @@
     }
 
-    bool status = psDBCreateTable(dbh, P1PENDINGEXP_TABLE_NAME, md);
+    bool status = psDBCreateTable(dbh, GUIDEPENDINGEXP_TABLE_NAME, md);
 
     psFree(md);
@@ -4996,10 +4996,10 @@
 }
 
-bool p1PendingExpDropTable(psDB *dbh)
-{
-    return psDBDropTable(dbh, P1PENDINGEXP_TABLE_NAME);
-}
-
-bool p1PendingExpInsert(psDB * dbh, const char *exp_tag, psS32 p1_version, const char *recipe)
+bool guidePendingExpDropTable(psDB *dbh)
+{
+    return psDBDropTable(dbh, GUIDEPENDINGEXP_TABLE_NAME);
+}
+
+bool guidePendingExpInsert(psDB * dbh, const char *exp_tag, psS32 guide_version, const char *recipe)
 {
     psMetadata *md = psMetadataAlloc();
@@ -5009,6 +5009,6 @@
         return false;
     }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p1_version", PS_DATA_S32, NULL, p1_version)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p1_version");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "guide_version", PS_DATA_S32, NULL, guide_version)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item guide_version");
         psFree(md);
         return false;
@@ -5020,5 +5020,5 @@
     }
 
-    bool status = psDBInsertOneRow(dbh, P1PENDINGEXP_TABLE_NAME, md);
+    bool status = psDBInsertOneRow(dbh, GUIDEPENDINGEXP_TABLE_NAME, md);
     psFree(md);
 
@@ -5026,11 +5026,11 @@
 }
 
-long long p1PendingExpDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
+long long guidePendingExpDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
 {
     long long       deleted = 0;
 
-    long long count = psDBDeleteRows(dbh, P1PENDINGEXP_TABLE_NAME, where, limit);
+    long long count = psDBDeleteRows(dbh, GUIDEPENDINGEXP_TABLE_NAME, where, limit);
     if (count < 0) {
-        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p1PendingExp");
+        psError(PS_ERR_UNKNOWN, true, "failed to delete row from guidePendingExp");
         return count;
 
@@ -5040,13 +5040,13 @@
     return deleted;
 }
-bool p1PendingExpInsertObject(psDB *dbh, p1PendingExpRow *object)
-{
-    return p1PendingExpInsert(dbh, object->exp_tag, object->p1_version, object->recipe);
-}
-
-bool p1PendingExpInsertObjects(psDB *dbh, psArray *objects)
+bool guidePendingExpInsertObject(psDB *dbh, guidePendingExpRow *object)
+{
+    return guidePendingExpInsert(dbh, object->exp_tag, object->guide_version, object->recipe);
+}
+
+bool guidePendingExpInsertObjects(psDB *dbh, psArray *objects)
 {
     for (long i = 0; i < psArrayLength(objects); i++) {
-        if (!p1PendingExpInsertObject(dbh, objects->data[i])) {
+        if (!guidePendingExpInsertObject(dbh, objects->data[i])) {
             return false;
         }
@@ -5056,11 +5056,11 @@
 }
 
-bool p1PendingExpInsertFits(psDB *dbh, const psFits *fits)
+bool guidePendingExpInsertFits(psDB *dbh, const psFits *fits)
 {
     psArray         *rowSet;
 
-    // move to (the first?) extension named  P1PENDINGEXP_TABLE_NAME
-    if (!psFitsMoveExtName(fits, P1PENDINGEXP_TABLE_NAME)) {
-        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", P1PENDINGEXP_TABLE_NAME);
+    // move to (the first?) extension named  GUIDEPENDINGEXP_TABLE_NAME
+    if (!psFitsMoveExtName(fits, GUIDEPENDINGEXP_TABLE_NAME)) {
+        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", GUIDEPENDINGEXP_TABLE_NAME);
         return false;
     }
@@ -5080,5 +5080,5 @@
     }
 
-    if (!psDBInsertRows(dbh, P1PENDINGEXP_TABLE_NAME, rowSet)) {
+    if (!psDBInsertRows(dbh, GUIDEPENDINGEXP_TABLE_NAME, rowSet)) {
         psError(PS_ERR_UNKNOWN, false, "databse insert failed");
         psFree(rowSet);
@@ -5091,9 +5091,9 @@
 }
 
-bool p1PendingExpSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
+bool guidePendingExpSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
 {
     psArray         *rowSet;
 
-    rowSet = psDBSelectRows(dbh, P1PENDINGEXP_TABLE_NAME, where, limit);
+    rowSet = psDBSelectRows(dbh, GUIDEPENDINGEXP_TABLE_NAME, where, limit);
     if (!rowSet) {
         return false;
@@ -5101,5 +5101,5 @@
 
     // output to fits
-    if (!psFitsWriteTable(fits, NULL, rowSet, P1PENDINGEXP_TABLE_NAME)) {
+    if (!psFitsWriteTable(fits, NULL, rowSet, GUIDEPENDINGEXP_TABLE_NAME)) {
         psError(PS_ERR_UNKNOWN, false, "FITS table write failed");
         psFree(rowSet);
@@ -5112,5 +5112,5 @@
 }
 
-psMetadata *p1PendingExpMetadataFromObject(const p1PendingExpRow *object)
+psMetadata *guidePendingExpMetadataFromObject(const guidePendingExpRow *object)
 {
     psMetadata *md = psMetadataAlloc();
@@ -5120,6 +5120,6 @@
         return false;
     }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p1_version", PS_DATA_S32, NULL, object->p1_version)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p1_version");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "guide_version", PS_DATA_S32, NULL, object->guide_version)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item guide_version");
         psFree(md);
         return false;
@@ -5135,5 +5135,5 @@
 }
 
-p1PendingExpRow *p1PendingExpObjectFromMetadata(psMetadata *md)
+guidePendingExpRow *guidePendingExpObjectFromMetadata(psMetadata *md)
 {
 
@@ -5144,7 +5144,7 @@
         return false;
     }
-    psS32 p1_version = psMetadataLookupS32(&status, md, "p1_version");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item p1_version");
+    psS32 guide_version = psMetadataLookupS32(&status, md, "guide_version");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item guide_version");
         return false;
     }
@@ -5155,7 +5155,7 @@
     }
 
-    return p1PendingExpRowAlloc(exp_tag, p1_version, recipe);
-}
-psArray *p1PendingExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
+    return guidePendingExpRowAlloc(exp_tag, guide_version, recipe);
+}
+psArray *guidePendingExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
 {
     psArray         *rowSet;
@@ -5163,5 +5163,5 @@
     psU64           i;
 
-    rowSet = psDBSelectRows(dbh, P1PENDINGEXP_TABLE_NAME, where, limit);
+    rowSet = psDBSelectRows(dbh, GUIDEPENDINGEXP_TABLE_NAME, where, limit);
     if (!rowSet) {
         return NULL;
@@ -5173,5 +5173,5 @@
 
     for (i = 0; i < rowSet->n; i++) {
-        p1PendingExpRow *object = p1PendingExpObjectFromMetadata(rowSet->data[i]);
+        guidePendingExpRow *object = guidePendingExpObjectFromMetadata(rowSet->data[i]);
         psArrayAdd(returnSet, 0, object);
         psFree(object);
@@ -5182,11 +5182,11 @@
     return returnSet;
 }
-bool p1PendingExpDeleteObject(psDB *dbh, const p1PendingExpRow *object)
-{
-    psMetadata *where = p1PendingExpMetadataFromObject(object);
-    long long count = psDBDeleteRows(dbh, P1PENDINGEXP_TABLE_NAME, where, 0);
+bool guidePendingExpDeleteObject(psDB *dbh, const guidePendingExpRow *object)
+{
+    psMetadata *where = guidePendingExpMetadataFromObject(object);
+    long long count = psDBDeleteRows(dbh, GUIDEPENDINGEXP_TABLE_NAME, where, 0);
     psFree(where);
     if (count < 0) {
-        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p1PendingExp");
+        psError(PS_ERR_UNKNOWN, true, "failed to delete row from guidePendingExp");
         return false;
     }
@@ -5194,21 +5194,21 @@
         // XXX should this be a psAbort() instead?  It is possible that
         // having an object match multiple rows was by design.
-        psError(PS_ERR_UNKNOWN, true, "p1PendingExpRow object matched more then one row.  Check your database schema");
-        return false;
-    }
-
-    return true;
-}
-long long p1PendingExpDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
+        psError(PS_ERR_UNKNOWN, true, "guidePendingExpRow object matched more then one row.  Check your database schema");
+        return false;
+    }
+
+    return true;
+}
+long long guidePendingExpDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
 {
     long long       deleted = 0;
 
     for (long long i = 0; i < objects->n; i++) {
-        p1PendingExpRow *object = objects->data[i];
-        psMetadata *where = p1PendingExpMetadataFromObject(object);
-        long long count = psDBDeleteRows(dbh, P1PENDINGEXP_TABLE_NAME, where, limit);
+        guidePendingExpRow *object = objects->data[i];
+        psMetadata *where = guidePendingExpMetadataFromObject(object);
+        long long count = psDBDeleteRows(dbh, GUIDEPENDINGEXP_TABLE_NAME, where, limit);
         psFree(where);
         if (count < 0) {
-            psError(PS_ERR_UNKNOWN, true, "failed to delete row from p1PendingExp");
+            psError(PS_ERR_UNKNOWN, true, "failed to delete row from guidePendingExp");
             return count;
         }
@@ -5219,5 +5219,5 @@
     return deleted;
 }
-bool p1PendingExpPrintObjects(FILE *stream, psArray *objects, bool mdcf)
+bool guidePendingExpPrintObjects(FILE *stream, psArray *objects, bool mdcf)
 {
     PS_ASSERT_PTR_NON_NULL(objects, false);
@@ -5225,9 +5225,9 @@
     psMetadata *output = psMetadataAlloc();
     for (long i = 0; i < psArrayLength(objects); i++) {
-        psMetadata *md = p1PendingExpMetadataFromObject(objects->data[i]);
+        psMetadata *md = guidePendingExpMetadataFromObject(objects->data[i]);
         if (!psMetadataAddMetadata(
             output,
             PS_LIST_TAIL,
-            P1PENDINGEXP_TABLE_NAME,
+            GUIDEPENDINGEXP_TABLE_NAME,
             PS_META_DUPLICATE_OK,
             NULL,
@@ -5250,9 +5250,9 @@
     return true;
 }
-bool p1PendingExpPrintObject(FILE *stream, p1PendingExpRow *object, bool mdcf)
+bool guidePendingExpPrintObject(FILE *stream, guidePendingExpRow *object, bool mdcf)
 {
     PS_ASSERT_PTR_NON_NULL(object, false);
 
-    psMetadata *md = p1PendingExpMetadataFromObject(object);
+    psMetadata *md = guidePendingExpMetadataFromObject(object);
 
     if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
@@ -5265,16 +5265,16 @@
     return true;
 }
-static void p2PendingExpRowFree(p2PendingExpRow *object);
-
-p2PendingExpRow *p2PendingExpRowAlloc(const char *exp_tag, psS32 p2_version, psS32 p1_version, const char *label, const char *recipe, const char *expgroup, const char *dvodb)
-{
-    p2PendingExpRow *_object;
-
-    _object = psAlloc(sizeof(p2PendingExpRow));
-    psMemSetDeallocator(_object, (psFreeFunc)p2PendingExpRowFree);
+static void chipPendingExpRowFree(chipPendingExpRow *object);
+
+chipPendingExpRow *chipPendingExpRowAlloc(const char *exp_tag, psS32 chip_version, psS32 guide_version, const char *label, const char *recipe, const char *expgroup, const char *dvodb)
+{
+    chipPendingExpRow *_object;
+
+    _object = psAlloc(sizeof(chipPendingExpRow));
+    psMemSetDeallocator(_object, (psFreeFunc)chipPendingExpRowFree);
 
     _object->exp_tag = psStringCopy(exp_tag);
-    _object->p2_version = p2_version;
-    _object->p1_version = p1_version;
+    _object->chip_version = chip_version;
+    _object->guide_version = guide_version;
     _object->label = psStringCopy(label);
     _object->recipe = psStringCopy(recipe);
@@ -5285,5 +5285,5 @@
 }
 
-static void p2PendingExpRowFree(p2PendingExpRow *object)
+static void chipPendingExpRowFree(chipPendingExpRow *object)
 {
     psFree(object->exp_tag);
@@ -5294,5 +5294,5 @@
 }
 
-bool p2PendingExpCreateTable(psDB *dbh)
+bool chipPendingExpCreateTable(psDB *dbh)
 {
     psMetadata *md = psMetadataAlloc();
@@ -5302,11 +5302,11 @@
         return false;
     }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p2_version", PS_DATA_S32, "Primary Key", 0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p2_version");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p1_version", PS_DATA_S32, NULL, 0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p1_version");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "chip_version", PS_DATA_S32, "Primary Key", 0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item chip_version");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "guide_version", PS_DATA_S32, NULL, 0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item guide_version");
         psFree(md);
         return false;
@@ -5333,5 +5333,5 @@
     }
 
-    bool status = psDBCreateTable(dbh, P2PENDINGEXP_TABLE_NAME, md);
+    bool status = psDBCreateTable(dbh, CHIPPENDINGEXP_TABLE_NAME, md);
 
     psFree(md);
@@ -5340,10 +5340,10 @@
 }
 
-bool p2PendingExpDropTable(psDB *dbh)
-{
-    return psDBDropTable(dbh, P2PENDINGEXP_TABLE_NAME);
-}
-
-bool p2PendingExpInsert(psDB * dbh, const char *exp_tag, psS32 p2_version, psS32 p1_version, const char *label, const char *recipe, const char *expgroup, const char *dvodb)
+bool chipPendingExpDropTable(psDB *dbh)
+{
+    return psDBDropTable(dbh, CHIPPENDINGEXP_TABLE_NAME);
+}
+
+bool chipPendingExpInsert(psDB * dbh, const char *exp_tag, psS32 chip_version, psS32 guide_version, const char *label, const char *recipe, const char *expgroup, const char *dvodb)
 {
     psMetadata *md = psMetadataAlloc();
@@ -5353,11 +5353,11 @@
         return false;
     }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p2_version", PS_DATA_S32, NULL, p2_version)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p2_version");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p1_version", PS_DATA_S32, NULL, p1_version)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p1_version");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "chip_version", PS_DATA_S32, NULL, chip_version)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item chip_version");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "guide_version", PS_DATA_S32, NULL, guide_version)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item guide_version");
         psFree(md);
         return false;
@@ -5384,5 +5384,5 @@
     }
 
-    bool status = psDBInsertOneRow(dbh, P2PENDINGEXP_TABLE_NAME, md);
+    bool status = psDBInsertOneRow(dbh, CHIPPENDINGEXP_TABLE_NAME, md);
     psFree(md);
 
@@ -5390,11 +5390,11 @@
 }
 
-long long p2PendingExpDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
+long long chipPendingExpDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
 {
     long long       deleted = 0;
 
-    long long count = psDBDeleteRows(dbh, P2PENDINGEXP_TABLE_NAME, where, limit);
+    long long count = psDBDeleteRows(dbh, CHIPPENDINGEXP_TABLE_NAME, where, limit);
     if (count < 0) {
-        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p2PendingExp");
+        psError(PS_ERR_UNKNOWN, true, "failed to delete row from chipPendingExp");
         return count;
 
@@ -5404,13 +5404,13 @@
     return deleted;
 }
-bool p2PendingExpInsertObject(psDB *dbh, p2PendingExpRow *object)
-{
-    return p2PendingExpInsert(dbh, object->exp_tag, object->p2_version, object->p1_version, object->label, object->recipe, object->expgroup, object->dvodb);
-}
-
-bool p2PendingExpInsertObjects(psDB *dbh, psArray *objects)
+bool chipPendingExpInsertObject(psDB *dbh, chipPendingExpRow *object)
+{
+    return chipPendingExpInsert(dbh, object->exp_tag, object->chip_version, object->guide_version, object->label, object->recipe, object->expgroup, object->dvodb);
+}
+
+bool chipPendingExpInsertObjects(psDB *dbh, psArray *objects)
 {
     for (long i = 0; i < psArrayLength(objects); i++) {
-        if (!p2PendingExpInsertObject(dbh, objects->data[i])) {
+        if (!chipPendingExpInsertObject(dbh, objects->data[i])) {
             return false;
         }
@@ -5420,11 +5420,11 @@
 }
 
-bool p2PendingExpInsertFits(psDB *dbh, const psFits *fits)
+bool chipPendingExpInsertFits(psDB *dbh, const psFits *fits)
 {
     psArray         *rowSet;
 
-    // move to (the first?) extension named  P2PENDINGEXP_TABLE_NAME
-    if (!psFitsMoveExtName(fits, P2PENDINGEXP_TABLE_NAME)) {
-        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", P2PENDINGEXP_TABLE_NAME);
+    // move to (the first?) extension named  CHIPPENDINGEXP_TABLE_NAME
+    if (!psFitsMoveExtName(fits, CHIPPENDINGEXP_TABLE_NAME)) {
+        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", CHIPPENDINGEXP_TABLE_NAME);
         return false;
     }
@@ -5444,5 +5444,5 @@
     }
 
-    if (!psDBInsertRows(dbh, P2PENDINGEXP_TABLE_NAME, rowSet)) {
+    if (!psDBInsertRows(dbh, CHIPPENDINGEXP_TABLE_NAME, rowSet)) {
         psError(PS_ERR_UNKNOWN, false, "databse insert failed");
         psFree(rowSet);
@@ -5455,9 +5455,9 @@
 }
 
-bool p2PendingExpSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
+bool chipPendingExpSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
 {
     psArray         *rowSet;
 
-    rowSet = psDBSelectRows(dbh, P2PENDINGEXP_TABLE_NAME, where, limit);
+    rowSet = psDBSelectRows(dbh, CHIPPENDINGEXP_TABLE_NAME, where, limit);
     if (!rowSet) {
         return false;
@@ -5465,5 +5465,5 @@
 
     // output to fits
-    if (!psFitsWriteTable(fits, NULL, rowSet, P2PENDINGEXP_TABLE_NAME)) {
+    if (!psFitsWriteTable(fits, NULL, rowSet, CHIPPENDINGEXP_TABLE_NAME)) {
         psError(PS_ERR_UNKNOWN, false, "FITS table write failed");
         psFree(rowSet);
@@ -5476,5 +5476,5 @@
 }
 
-psMetadata *p2PendingExpMetadataFromObject(const p2PendingExpRow *object)
+psMetadata *chipPendingExpMetadataFromObject(const chipPendingExpRow *object)
 {
     psMetadata *md = psMetadataAlloc();
@@ -5484,11 +5484,11 @@
         return false;
     }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p2_version", PS_DATA_S32, NULL, object->p2_version)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p2_version");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p1_version", PS_DATA_S32, NULL, object->p1_version)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p1_version");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "chip_version", PS_DATA_S32, NULL, object->chip_version)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item chip_version");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "guide_version", PS_DATA_S32, NULL, object->guide_version)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item guide_version");
         psFree(md);
         return false;
@@ -5519,5 +5519,5 @@
 }
 
-p2PendingExpRow *p2PendingExpObjectFromMetadata(psMetadata *md)
+chipPendingExpRow *chipPendingExpObjectFromMetadata(psMetadata *md)
 {
 
@@ -5528,12 +5528,12 @@
         return false;
     }
-    psS32 p2_version = psMetadataLookupS32(&status, md, "p2_version");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item p2_version");
-        return false;
-    }
-    psS32 p1_version = psMetadataLookupS32(&status, md, "p1_version");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item p1_version");
+    psS32 chip_version = psMetadataLookupS32(&status, md, "chip_version");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item chip_version");
+        return false;
+    }
+    psS32 guide_version = psMetadataLookupS32(&status, md, "guide_version");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item guide_version");
         return false;
     }
@@ -5559,7 +5559,7 @@
     }
 
-    return p2PendingExpRowAlloc(exp_tag, p2_version, p1_version, label, recipe, expgroup, dvodb);
-}
-psArray *p2PendingExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
+    return chipPendingExpRowAlloc(exp_tag, chip_version, guide_version, label, recipe, expgroup, dvodb);
+}
+psArray *chipPendingExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
 {
     psArray         *rowSet;
@@ -5567,5 +5567,5 @@
     psU64           i;
 
-    rowSet = psDBSelectRows(dbh, P2PENDINGEXP_TABLE_NAME, where, limit);
+    rowSet = psDBSelectRows(dbh, CHIPPENDINGEXP_TABLE_NAME, where, limit);
     if (!rowSet) {
         return NULL;
@@ -5577,5 +5577,5 @@
 
     for (i = 0; i < rowSet->n; i++) {
-        p2PendingExpRow *object = p2PendingExpObjectFromMetadata(rowSet->data[i]);
+        chipPendingExpRow *object = chipPendingExpObjectFromMetadata(rowSet->data[i]);
         psArrayAdd(returnSet, 0, object);
         psFree(object);
@@ -5586,11 +5586,11 @@
     return returnSet;
 }
-bool p2PendingExpDeleteObject(psDB *dbh, const p2PendingExpRow *object)
-{
-    psMetadata *where = p2PendingExpMetadataFromObject(object);
-    long long count = psDBDeleteRows(dbh, P2PENDINGEXP_TABLE_NAME, where, 0);
+bool chipPendingExpDeleteObject(psDB *dbh, const chipPendingExpRow *object)
+{
+    psMetadata *where = chipPendingExpMetadataFromObject(object);
+    long long count = psDBDeleteRows(dbh, CHIPPENDINGEXP_TABLE_NAME, where, 0);
     psFree(where);
     if (count < 0) {
-        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p2PendingExp");
+        psError(PS_ERR_UNKNOWN, true, "failed to delete row from chipPendingExp");
         return false;
     }
@@ -5598,21 +5598,21 @@
         // XXX should this be a psAbort() instead?  It is possible that
         // having an object match multiple rows was by design.
-        psError(PS_ERR_UNKNOWN, true, "p2PendingExpRow object matched more then one row.  Check your database schema");
-        return false;
-    }
-
-    return true;
-}
-long long p2PendingExpDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
+        psError(PS_ERR_UNKNOWN, true, "chipPendingExpRow object matched more then one row.  Check your database schema");
+        return false;
+    }
+
+    return true;
+}
+long long chipPendingExpDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
 {
     long long       deleted = 0;
 
     for (long long i = 0; i < objects->n; i++) {
-        p2PendingExpRow *object = objects->data[i];
-        psMetadata *where = p2PendingExpMetadataFromObject(object);
-        long long count = psDBDeleteRows(dbh, P2PENDINGEXP_TABLE_NAME, where, limit);
+        chipPendingExpRow *object = objects->data[i];
+        psMetadata *where = chipPendingExpMetadataFromObject(object);
+        long long count = psDBDeleteRows(dbh, CHIPPENDINGEXP_TABLE_NAME, where, limit);
         psFree(where);
         if (count < 0) {
-            psError(PS_ERR_UNKNOWN, true, "failed to delete row from p2PendingExp");
+            psError(PS_ERR_UNKNOWN, true, "failed to delete row from chipPendingExp");
             return count;
         }
@@ -5623,5 +5623,5 @@
     return deleted;
 }
-bool p2PendingExpPrintObjects(FILE *stream, psArray *objects, bool mdcf)
+bool chipPendingExpPrintObjects(FILE *stream, psArray *objects, bool mdcf)
 {
     PS_ASSERT_PTR_NON_NULL(objects, false);
@@ -5629,9 +5629,9 @@
     psMetadata *output = psMetadataAlloc();
     for (long i = 0; i < psArrayLength(objects); i++) {
-        psMetadata *md = p2PendingExpMetadataFromObject(objects->data[i]);
+        psMetadata *md = chipPendingExpMetadataFromObject(objects->data[i]);
         if (!psMetadataAddMetadata(
             output,
             PS_LIST_TAIL,
-            P2PENDINGEXP_TABLE_NAME,
+            CHIPPENDINGEXP_TABLE_NAME,
             PS_META_DUPLICATE_OK,
             NULL,
@@ -5654,9 +5654,9 @@
     return true;
 }
-bool p2PendingExpPrintObject(FILE *stream, p2PendingExpRow *object, bool mdcf)
+bool chipPendingExpPrintObject(FILE *stream, chipPendingExpRow *object, bool mdcf)
 {
     PS_ASSERT_PTR_NON_NULL(object, false);
 
-    psMetadata *md = p2PendingExpMetadataFromObject(object);
+    psMetadata *md = chipPendingExpMetadataFromObject(object);
 
     if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
@@ -5669,16 +5669,16 @@
     return true;
 }
-static void p2PendingImfileRowFree(p2PendingImfileRow *object);
-
-p2PendingImfileRow *p2PendingImfileRowAlloc(const char *exp_tag, psS32 p2_version, psS32 p1_version, const char *class_id, const char *recipe, const char *uri)
-{
-    p2PendingImfileRow *_object;
-
-    _object = psAlloc(sizeof(p2PendingImfileRow));
-    psMemSetDeallocator(_object, (psFreeFunc)p2PendingImfileRowFree);
+static void chipPendingImfileRowFree(chipPendingImfileRow *object);
+
+chipPendingImfileRow *chipPendingImfileRowAlloc(const char *exp_tag, psS32 chip_version, psS32 guide_version, const char *class_id, const char *recipe, const char *uri)
+{
+    chipPendingImfileRow *_object;
+
+    _object = psAlloc(sizeof(chipPendingImfileRow));
+    psMemSetDeallocator(_object, (psFreeFunc)chipPendingImfileRowFree);
 
     _object->exp_tag = psStringCopy(exp_tag);
-    _object->p2_version = p2_version;
-    _object->p1_version = p1_version;
+    _object->chip_version = chip_version;
+    _object->guide_version = guide_version;
     _object->class_id = psStringCopy(class_id);
     _object->recipe = psStringCopy(recipe);
@@ -5688,5 +5688,5 @@
 }
 
-static void p2PendingImfileRowFree(p2PendingImfileRow *object)
+static void chipPendingImfileRowFree(chipPendingImfileRow *object)
 {
     psFree(object->exp_tag);
@@ -5696,5 +5696,5 @@
 }
 
-bool p2PendingImfileCreateTable(psDB *dbh)
+bool chipPendingImfileCreateTable(psDB *dbh)
 {
     psMetadata *md = psMetadataAlloc();
@@ -5704,11 +5704,11 @@
         return false;
     }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p2_version", PS_DATA_S32, "Primary Key", 0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p2_version");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p1_version", PS_DATA_S32, NULL, 0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p1_version");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "chip_version", PS_DATA_S32, "Primary Key", 0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item chip_version");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "guide_version", PS_DATA_S32, NULL, 0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item guide_version");
         psFree(md);
         return false;
@@ -5730,5 +5730,5 @@
     }
 
-    bool status = psDBCreateTable(dbh, P2PENDINGIMFILE_TABLE_NAME, md);
+    bool status = psDBCreateTable(dbh, CHIPPENDINGIMFILE_TABLE_NAME, md);
 
     psFree(md);
@@ -5737,10 +5737,10 @@
 }
 
-bool p2PendingImfileDropTable(psDB *dbh)
-{
-    return psDBDropTable(dbh, P2PENDINGIMFILE_TABLE_NAME);
-}
-
-bool p2PendingImfileInsert(psDB * dbh, const char *exp_tag, psS32 p2_version, psS32 p1_version, const char *class_id, const char *recipe, const char *uri)
+bool chipPendingImfileDropTable(psDB *dbh)
+{
+    return psDBDropTable(dbh, CHIPPENDINGIMFILE_TABLE_NAME);
+}
+
+bool chipPendingImfileInsert(psDB * dbh, const char *exp_tag, psS32 chip_version, psS32 guide_version, const char *class_id, const char *recipe, const char *uri)
 {
     psMetadata *md = psMetadataAlloc();
@@ -5750,11 +5750,11 @@
         return false;
     }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p2_version", PS_DATA_S32, NULL, p2_version)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p2_version");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p1_version", PS_DATA_S32, NULL, p1_version)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p1_version");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "chip_version", PS_DATA_S32, NULL, chip_version)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item chip_version");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "guide_version", PS_DATA_S32, NULL, guide_version)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item guide_version");
         psFree(md);
         return false;
@@ -5776,5 +5776,5 @@
     }
 
-    bool status = psDBInsertOneRow(dbh, P2PENDINGIMFILE_TABLE_NAME, md);
+    bool status = psDBInsertOneRow(dbh, CHIPPENDINGIMFILE_TABLE_NAME, md);
     psFree(md);
 
@@ -5782,11 +5782,11 @@
 }
 
-long long p2PendingImfileDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
+long long chipPendingImfileDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
 {
     long long       deleted = 0;
 
-    long long count = psDBDeleteRows(dbh, P2PENDINGIMFILE_TABLE_NAME, where, limit);
+    long long count = psDBDeleteRows(dbh, CHIPPENDINGIMFILE_TABLE_NAME, where, limit);
     if (count < 0) {
-        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p2PendingImfile");
+        psError(PS_ERR_UNKNOWN, true, "failed to delete row from chipPendingImfile");
         return count;
 
@@ -5796,13 +5796,13 @@
     return deleted;
 }
-bool p2PendingImfileInsertObject(psDB *dbh, p2PendingImfileRow *object)
-{
-    return p2PendingImfileInsert(dbh, object->exp_tag, object->p2_version, object->p1_version, object->class_id, object->recipe, object->uri);
-}
-
-bool p2PendingImfileInsertObjects(psDB *dbh, psArray *objects)
+bool chipPendingImfileInsertObject(psDB *dbh, chipPendingImfileRow *object)
+{
+    return chipPendingImfileInsert(dbh, object->exp_tag, object->chip_version, object->guide_version, object->class_id, object->recipe, object->uri);
+}
+
+bool chipPendingImfileInsertObjects(psDB *dbh, psArray *objects)
 {
     for (long i = 0; i < psArrayLength(objects); i++) {
-        if (!p2PendingImfileInsertObject(dbh, objects->data[i])) {
+        if (!chipPendingImfileInsertObject(dbh, objects->data[i])) {
             return false;
         }
@@ -5812,11 +5812,11 @@
 }
 
-bool p2PendingImfileInsertFits(psDB *dbh, const psFits *fits)
+bool chipPendingImfileInsertFits(psDB *dbh, const psFits *fits)
 {
     psArray         *rowSet;
 
-    // move to (the first?) extension named  P2PENDINGIMFILE_TABLE_NAME
-    if (!psFitsMoveExtName(fits, P2PENDINGIMFILE_TABLE_NAME)) {
-        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", P2PENDINGIMFILE_TABLE_NAME);
+    // move to (the first?) extension named  CHIPPENDINGIMFILE_TABLE_NAME
+    if (!psFitsMoveExtName(fits, CHIPPENDINGIMFILE_TABLE_NAME)) {
+        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", CHIPPENDINGIMFILE_TABLE_NAME);
         return false;
     }
@@ -5836,5 +5836,5 @@
     }
 
-    if (!psDBInsertRows(dbh, P2PENDINGIMFILE_TABLE_NAME, rowSet)) {
+    if (!psDBInsertRows(dbh, CHIPPENDINGIMFILE_TABLE_NAME, rowSet)) {
         psError(PS_ERR_UNKNOWN, false, "databse insert failed");
         psFree(rowSet);
@@ -5847,9 +5847,9 @@
 }
 
-bool p2PendingImfileSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
+bool chipPendingImfileSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
 {
     psArray         *rowSet;
 
-    rowSet = psDBSelectRows(dbh, P2PENDINGIMFILE_TABLE_NAME, where, limit);
+    rowSet = psDBSelectRows(dbh, CHIPPENDINGIMFILE_TABLE_NAME, where, limit);
     if (!rowSet) {
         return false;
@@ -5857,5 +5857,5 @@
 
     // output to fits
-    if (!psFitsWriteTable(fits, NULL, rowSet, P2PENDINGIMFILE_TABLE_NAME)) {
+    if (!psFitsWriteTable(fits, NULL, rowSet, CHIPPENDINGIMFILE_TABLE_NAME)) {
         psError(PS_ERR_UNKNOWN, false, "FITS table write failed");
         psFree(rowSet);
@@ -5868,5 +5868,5 @@
 }
 
-psMetadata *p2PendingImfileMetadataFromObject(const p2PendingImfileRow *object)
+psMetadata *chipPendingImfileMetadataFromObject(const chipPendingImfileRow *object)
 {
     psMetadata *md = psMetadataAlloc();
@@ -5876,11 +5876,11 @@
         return false;
     }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p2_version", PS_DATA_S32, NULL, object->p2_version)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p2_version");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p1_version", PS_DATA_S32, NULL, object->p1_version)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p1_version");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "chip_version", PS_DATA_S32, NULL, object->chip_version)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item chip_version");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "guide_version", PS_DATA_S32, NULL, object->guide_version)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item guide_version");
         psFree(md);
         return false;
@@ -5906,5 +5906,5 @@
 }
 
-p2PendingImfileRow *p2PendingImfileObjectFromMetadata(psMetadata *md)
+chipPendingImfileRow *chipPendingImfileObjectFromMetadata(psMetadata *md)
 {
 
@@ -5915,12 +5915,12 @@
         return false;
     }
-    psS32 p2_version = psMetadataLookupS32(&status, md, "p2_version");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item p2_version");
-        return false;
-    }
-    psS32 p1_version = psMetadataLookupS32(&status, md, "p1_version");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item p1_version");
+    psS32 chip_version = psMetadataLookupS32(&status, md, "chip_version");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item chip_version");
+        return false;
+    }
+    psS32 guide_version = psMetadataLookupS32(&status, md, "guide_version");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item guide_version");
         return false;
     }
@@ -5941,7 +5941,7 @@
     }
 
-    return p2PendingImfileRowAlloc(exp_tag, p2_version, p1_version, class_id, recipe, uri);
-}
-psArray *p2PendingImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
+    return chipPendingImfileRowAlloc(exp_tag, chip_version, guide_version, class_id, recipe, uri);
+}
+psArray *chipPendingImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
 {
     psArray         *rowSet;
@@ -5949,5 +5949,5 @@
     psU64           i;
 
-    rowSet = psDBSelectRows(dbh, P2PENDINGIMFILE_TABLE_NAME, where, limit);
+    rowSet = psDBSelectRows(dbh, CHIPPENDINGIMFILE_TABLE_NAME, where, limit);
     if (!rowSet) {
         return NULL;
@@ -5959,5 +5959,5 @@
 
     for (i = 0; i < rowSet->n; i++) {
-        p2PendingImfileRow *object = p2PendingImfileObjectFromMetadata(rowSet->data[i]);
+        chipPendingImfileRow *object = chipPendingImfileObjectFromMetadata(rowSet->data[i]);
         psArrayAdd(returnSet, 0, object);
         psFree(object);
@@ -5968,11 +5968,11 @@
     return returnSet;
 }
-bool p2PendingImfileDeleteObject(psDB *dbh, const p2PendingImfileRow *object)
-{
-    psMetadata *where = p2PendingImfileMetadataFromObject(object);
-    long long count = psDBDeleteRows(dbh, P2PENDINGIMFILE_TABLE_NAME, where, 0);
+bool chipPendingImfileDeleteObject(psDB *dbh, const chipPendingImfileRow *object)
+{
+    psMetadata *where = chipPendingImfileMetadataFromObject(object);
+    long long count = psDBDeleteRows(dbh, CHIPPENDINGIMFILE_TABLE_NAME, where, 0);
     psFree(where);
     if (count < 0) {
-        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p2PendingImfile");
+        psError(PS_ERR_UNKNOWN, true, "failed to delete row from chipPendingImfile");
         return false;
     }
@@ -5980,21 +5980,21 @@
         // XXX should this be a psAbort() instead?  It is possible that
         // having an object match multiple rows was by design.
-        psError(PS_ERR_UNKNOWN, true, "p2PendingImfileRow object matched more then one row.  Check your database schema");
-        return false;
-    }
-
-    return true;
-}
-long long p2PendingImfileDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
+        psError(PS_ERR_UNKNOWN, true, "chipPendingImfileRow object matched more then one row.  Check your database schema");
+        return false;
+    }
+
+    return true;
+}
+long long chipPendingImfileDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
 {
     long long       deleted = 0;
 
     for (long long i = 0; i < objects->n; i++) {
-        p2PendingImfileRow *object = objects->data[i];
-        psMetadata *where = p2PendingImfileMetadataFromObject(object);
-        long long count = psDBDeleteRows(dbh, P2PENDINGIMFILE_TABLE_NAME, where, limit);
+        chipPendingImfileRow *object = objects->data[i];
+        psMetadata *where = chipPendingImfileMetadataFromObject(object);
+        long long count = psDBDeleteRows(dbh, CHIPPENDINGIMFILE_TABLE_NAME, where, limit);
         psFree(where);
         if (count < 0) {
-            psError(PS_ERR_UNKNOWN, true, "failed to delete row from p2PendingImfile");
+            psError(PS_ERR_UNKNOWN, true, "failed to delete row from chipPendingImfile");
             return count;
         }
@@ -6005,5 +6005,5 @@
     return deleted;
 }
-bool p2PendingImfilePrintObjects(FILE *stream, psArray *objects, bool mdcf)
+bool chipPendingImfilePrintObjects(FILE *stream, psArray *objects, bool mdcf)
 {
     PS_ASSERT_PTR_NON_NULL(objects, false);
@@ -6011,9 +6011,9 @@
     psMetadata *output = psMetadataAlloc();
     for (long i = 0; i < psArrayLength(objects); i++) {
-        psMetadata *md = p2PendingImfileMetadataFromObject(objects->data[i]);
+        psMetadata *md = chipPendingImfileMetadataFromObject(objects->data[i]);
         if (!psMetadataAddMetadata(
             output,
             PS_LIST_TAIL,
-            P2PENDINGIMFILE_TABLE_NAME,
+            CHIPPENDINGIMFILE_TABLE_NAME,
             PS_META_DUPLICATE_OK,
             NULL,
@@ -6036,9 +6036,9 @@
     return true;
 }
-bool p2PendingImfilePrintObject(FILE *stream, p2PendingImfileRow *object, bool mdcf)
+bool chipPendingImfilePrintObject(FILE *stream, chipPendingImfileRow *object, bool mdcf)
 {
     PS_ASSERT_PTR_NON_NULL(object, false);
 
-    psMetadata *md = p2PendingImfileMetadataFromObject(object);
+    psMetadata *md = chipPendingImfileMetadataFromObject(object);
 
     if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
@@ -6051,16 +6051,16 @@
     return true;
 }
-static void p2ProcessedExpRowFree(p2ProcessedExpRow *object);
-
-p2ProcessedExpRow *p2ProcessedExpRowAlloc(const char *exp_tag, psS32 p2_version, psS32 p1_version, const char *label, const char *expgroup, const char *dvodb)
-{
-    p2ProcessedExpRow *_object;
-
-    _object = psAlloc(sizeof(p2ProcessedExpRow));
-    psMemSetDeallocator(_object, (psFreeFunc)p2ProcessedExpRowFree);
+static void chipProcessedExpRowFree(chipProcessedExpRow *object);
+
+chipProcessedExpRow *chipProcessedExpRowAlloc(const char *exp_tag, psS32 chip_version, psS32 guide_version, const char *label, const char *expgroup, const char *dvodb)
+{
+    chipProcessedExpRow *_object;
+
+    _object = psAlloc(sizeof(chipProcessedExpRow));
+    psMemSetDeallocator(_object, (psFreeFunc)chipProcessedExpRowFree);
 
     _object->exp_tag = psStringCopy(exp_tag);
-    _object->p2_version = p2_version;
-    _object->p1_version = p1_version;
+    _object->chip_version = chip_version;
+    _object->guide_version = guide_version;
     _object->label = psStringCopy(label);
     _object->expgroup = psStringCopy(expgroup);
@@ -6070,5 +6070,5 @@
 }
 
-static void p2ProcessedExpRowFree(p2ProcessedExpRow *object)
+static void chipProcessedExpRowFree(chipProcessedExpRow *object)
 {
     psFree(object->exp_tag);
@@ -6078,5 +6078,5 @@
 }
 
-bool p2ProcessedExpCreateTable(psDB *dbh)
+bool chipProcessedExpCreateTable(psDB *dbh)
 {
     psMetadata *md = psMetadataAlloc();
@@ -6086,11 +6086,11 @@
         return false;
     }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p2_version", PS_DATA_S32, "Primary Key", 0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p2_version");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p1_version", PS_DATA_S32, NULL, 0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p1_version");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "chip_version", PS_DATA_S32, "Primary Key", 0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item chip_version");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "guide_version", PS_DATA_S32, NULL, 0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item guide_version");
         psFree(md);
         return false;
@@ -6112,5 +6112,5 @@
     }
 
-    bool status = psDBCreateTable(dbh, P2PROCESSEDEXP_TABLE_NAME, md);
+    bool status = psDBCreateTable(dbh, CHIPPROCESSEDEXP_TABLE_NAME, md);
 
     psFree(md);
@@ -6119,10 +6119,10 @@
 }
 
-bool p2ProcessedExpDropTable(psDB *dbh)
-{
-    return psDBDropTable(dbh, P2PROCESSEDEXP_TABLE_NAME);
-}
-
-bool p2ProcessedExpInsert(psDB * dbh, const char *exp_tag, psS32 p2_version, psS32 p1_version, const char *label, const char *expgroup, const char *dvodb)
+bool chipProcessedExpDropTable(psDB *dbh)
+{
+    return psDBDropTable(dbh, CHIPPROCESSEDEXP_TABLE_NAME);
+}
+
+bool chipProcessedExpInsert(psDB * dbh, const char *exp_tag, psS32 chip_version, psS32 guide_version, const char *label, const char *expgroup, const char *dvodb)
 {
     psMetadata *md = psMetadataAlloc();
@@ -6132,11 +6132,11 @@
         return false;
     }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p2_version", PS_DATA_S32, NULL, p2_version)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p2_version");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p1_version", PS_DATA_S32, NULL, p1_version)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p1_version");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "chip_version", PS_DATA_S32, NULL, chip_version)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item chip_version");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "guide_version", PS_DATA_S32, NULL, guide_version)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item guide_version");
         psFree(md);
         return false;
@@ -6158,5 +6158,5 @@
     }
 
-    bool status = psDBInsertOneRow(dbh, P2PROCESSEDEXP_TABLE_NAME, md);
+    bool status = psDBInsertOneRow(dbh, CHIPPROCESSEDEXP_TABLE_NAME, md);
     psFree(md);
 
@@ -6164,11 +6164,11 @@
 }
 
-long long p2ProcessedExpDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
+long long chipProcessedExpDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
 {
     long long       deleted = 0;
 
-    long long count = psDBDeleteRows(dbh, P2PROCESSEDEXP_TABLE_NAME, where, limit);
+    long long count = psDBDeleteRows(dbh, CHIPPROCESSEDEXP_TABLE_NAME, where, limit);
     if (count < 0) {
-        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p2ProcessedExp");
+        psError(PS_ERR_UNKNOWN, true, "failed to delete row from chipProcessedExp");
         return count;
 
@@ -6178,13 +6178,13 @@
     return deleted;
 }
-bool p2ProcessedExpInsertObject(psDB *dbh, p2ProcessedExpRow *object)
-{
-    return p2ProcessedExpInsert(dbh, object->exp_tag, object->p2_version, object->p1_version, object->label, object->expgroup, object->dvodb);
-}
-
-bool p2ProcessedExpInsertObjects(psDB *dbh, psArray *objects)
+bool chipProcessedExpInsertObject(psDB *dbh, chipProcessedExpRow *object)
+{
+    return chipProcessedExpInsert(dbh, object->exp_tag, object->chip_version, object->guide_version, object->label, object->expgroup, object->dvodb);
+}
+
+bool chipProcessedExpInsertObjects(psDB *dbh, psArray *objects)
 {
     for (long i = 0; i < psArrayLength(objects); i++) {
-        if (!p2ProcessedExpInsertObject(dbh, objects->data[i])) {
+        if (!chipProcessedExpInsertObject(dbh, objects->data[i])) {
             return false;
         }
@@ -6194,11 +6194,11 @@
 }
 
-bool p2ProcessedExpInsertFits(psDB *dbh, const psFits *fits)
+bool chipProcessedExpInsertFits(psDB *dbh, const psFits *fits)
 {
     psArray         *rowSet;
 
-    // move to (the first?) extension named  P2PROCESSEDEXP_TABLE_NAME
-    if (!psFitsMoveExtName(fits, P2PROCESSEDEXP_TABLE_NAME)) {
-        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", P2PROCESSEDEXP_TABLE_NAME);
+    // move to (the first?) extension named  CHIPPROCESSEDEXP_TABLE_NAME
+    if (!psFitsMoveExtName(fits, CHIPPROCESSEDEXP_TABLE_NAME)) {
+        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", CHIPPROCESSEDEXP_TABLE_NAME);
         return false;
     }
@@ -6218,5 +6218,5 @@
     }
 
-    if (!psDBInsertRows(dbh, P2PROCESSEDEXP_TABLE_NAME, rowSet)) {
+    if (!psDBInsertRows(dbh, CHIPPROCESSEDEXP_TABLE_NAME, rowSet)) {
         psError(PS_ERR_UNKNOWN, false, "databse insert failed");
         psFree(rowSet);
@@ -6229,9 +6229,9 @@
 }
 
-bool p2ProcessedExpSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
+bool chipProcessedExpSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
 {
     psArray         *rowSet;
 
-    rowSet = psDBSelectRows(dbh, P2PROCESSEDEXP_TABLE_NAME, where, limit);
+    rowSet = psDBSelectRows(dbh, CHIPPROCESSEDEXP_TABLE_NAME, where, limit);
     if (!rowSet) {
         return false;
@@ -6239,5 +6239,5 @@
 
     // output to fits
-    if (!psFitsWriteTable(fits, NULL, rowSet, P2PROCESSEDEXP_TABLE_NAME)) {
+    if (!psFitsWriteTable(fits, NULL, rowSet, CHIPPROCESSEDEXP_TABLE_NAME)) {
         psError(PS_ERR_UNKNOWN, false, "FITS table write failed");
         psFree(rowSet);
@@ -6250,5 +6250,5 @@
 }
 
-psMetadata *p2ProcessedExpMetadataFromObject(const p2ProcessedExpRow *object)
+psMetadata *chipProcessedExpMetadataFromObject(const chipProcessedExpRow *object)
 {
     psMetadata *md = psMetadataAlloc();
@@ -6258,11 +6258,11 @@
         return false;
     }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p2_version", PS_DATA_S32, NULL, object->p2_version)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p2_version");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p1_version", PS_DATA_S32, NULL, object->p1_version)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p1_version");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "chip_version", PS_DATA_S32, NULL, object->chip_version)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item chip_version");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "guide_version", PS_DATA_S32, NULL, object->guide_version)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item guide_version");
         psFree(md);
         return false;
@@ -6288,5 +6288,5 @@
 }
 
-p2ProcessedExpRow *p2ProcessedExpObjectFromMetadata(psMetadata *md)
+chipProcessedExpRow *chipProcessedExpObjectFromMetadata(psMetadata *md)
 {
 
@@ -6297,12 +6297,12 @@
         return false;
     }
-    psS32 p2_version = psMetadataLookupS32(&status, md, "p2_version");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item p2_version");
-        return false;
-    }
-    psS32 p1_version = psMetadataLookupS32(&status, md, "p1_version");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item p1_version");
+    psS32 chip_version = psMetadataLookupS32(&status, md, "chip_version");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item chip_version");
+        return false;
+    }
+    psS32 guide_version = psMetadataLookupS32(&status, md, "guide_version");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item guide_version");
         return false;
     }
@@ -6323,7 +6323,7 @@
     }
 
-    return p2ProcessedExpRowAlloc(exp_tag, p2_version, p1_version, label, expgroup, dvodb);
-}
-psArray *p2ProcessedExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
+    return chipProcessedExpRowAlloc(exp_tag, chip_version, guide_version, label, expgroup, dvodb);
+}
+psArray *chipProcessedExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
 {
     psArray         *rowSet;
@@ -6331,5 +6331,5 @@
     psU64           i;
 
-    rowSet = psDBSelectRows(dbh, P2PROCESSEDEXP_TABLE_NAME, where, limit);
+    rowSet = psDBSelectRows(dbh, CHIPPROCESSEDEXP_TABLE_NAME, where, limit);
     if (!rowSet) {
         return NULL;
@@ -6341,5 +6341,5 @@
 
     for (i = 0; i < rowSet->n; i++) {
-        p2ProcessedExpRow *object = p2ProcessedExpObjectFromMetadata(rowSet->data[i]);
+        chipProcessedExpRow *object = chipProcessedExpObjectFromMetadata(rowSet->data[i]);
         psArrayAdd(returnSet, 0, object);
         psFree(object);
@@ -6350,11 +6350,11 @@
     return returnSet;
 }
-bool p2ProcessedExpDeleteObject(psDB *dbh, const p2ProcessedExpRow *object)
-{
-    psMetadata *where = p2ProcessedExpMetadataFromObject(object);
-    long long count = psDBDeleteRows(dbh, P2PROCESSEDEXP_TABLE_NAME, where, 0);
+bool chipProcessedExpDeleteObject(psDB *dbh, const chipProcessedExpRow *object)
+{
+    psMetadata *where = chipProcessedExpMetadataFromObject(object);
+    long long count = psDBDeleteRows(dbh, CHIPPROCESSEDEXP_TABLE_NAME, where, 0);
     psFree(where);
     if (count < 0) {
-        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p2ProcessedExp");
+        psError(PS_ERR_UNKNOWN, true, "failed to delete row from chipProcessedExp");
         return false;
     }
@@ -6362,21 +6362,21 @@
         // XXX should this be a psAbort() instead?  It is possible that
         // having an object match multiple rows was by design.
-        psError(PS_ERR_UNKNOWN, true, "p2ProcessedExpRow object matched more then one row.  Check your database schema");
-        return false;
-    }
-
-    return true;
-}
-long long p2ProcessedExpDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
+        psError(PS_ERR_UNKNOWN, true, "chipProcessedExpRow object matched more then one row.  Check your database schema");
+        return false;
+    }
+
+    return true;
+}
+long long chipProcessedExpDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
 {
     long long       deleted = 0;
 
     for (long long i = 0; i < objects->n; i++) {
-        p2ProcessedExpRow *object = objects->data[i];
-        psMetadata *where = p2ProcessedExpMetadataFromObject(object);
-        long long count = psDBDeleteRows(dbh, P2PROCESSEDEXP_TABLE_NAME, where, limit);
+        chipProcessedExpRow *object = objects->data[i];
+        psMetadata *where = chipProcessedExpMetadataFromObject(object);
+        long long count = psDBDeleteRows(dbh, CHIPPROCESSEDEXP_TABLE_NAME, where, limit);
         psFree(where);
         if (count < 0) {
-            psError(PS_ERR_UNKNOWN, true, "failed to delete row from p2ProcessedExp");
+            psError(PS_ERR_UNKNOWN, true, "failed to delete row from chipProcessedExp");
             return count;
         }
@@ -6387,5 +6387,5 @@
     return deleted;
 }
-bool p2ProcessedExpPrintObjects(FILE *stream, psArray *objects, bool mdcf)
+bool chipProcessedExpPrintObjects(FILE *stream, psArray *objects, bool mdcf)
 {
     PS_ASSERT_PTR_NON_NULL(objects, false);
@@ -6393,9 +6393,9 @@
     psMetadata *output = psMetadataAlloc();
     for (long i = 0; i < psArrayLength(objects); i++) {
-        psMetadata *md = p2ProcessedExpMetadataFromObject(objects->data[i]);
+        psMetadata *md = chipProcessedExpMetadataFromObject(objects->data[i]);
         if (!psMetadataAddMetadata(
             output,
             PS_LIST_TAIL,
-            P2PROCESSEDEXP_TABLE_NAME,
+            CHIPPROCESSEDEXP_TABLE_NAME,
             PS_META_DUPLICATE_OK,
             NULL,
@@ -6418,9 +6418,9 @@
     return true;
 }
-bool p2ProcessedExpPrintObject(FILE *stream, p2ProcessedExpRow *object, bool mdcf)
+bool chipProcessedExpPrintObject(FILE *stream, chipProcessedExpRow *object, bool mdcf)
 {
     PS_ASSERT_PTR_NON_NULL(object, false);
 
-    psMetadata *md = p2ProcessedExpMetadataFromObject(object);
+    psMetadata *md = chipProcessedExpMetadataFromObject(object);
 
     if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
@@ -6433,12 +6433,12 @@
     return true;
 }
-static void p2MaskRowFree(p2MaskRow *object);
-
-p2MaskRow *p2MaskRowAlloc(const char *label)
-{
-    p2MaskRow       *_object;
-
-    _object = psAlloc(sizeof(p2MaskRow));
-    psMemSetDeallocator(_object, (psFreeFunc)p2MaskRowFree);
+static void chipMaskRowFree(chipMaskRow *object);
+
+chipMaskRow *chipMaskRowAlloc(const char *label)
+{
+    chipMaskRow     *_object;
+
+    _object = psAlloc(sizeof(chipMaskRow));
+    psMemSetDeallocator(_object, (psFreeFunc)chipMaskRowFree);
 
     _object->label = psStringCopy(label);
@@ -6447,10 +6447,10 @@
 }
 
-static void p2MaskRowFree(p2MaskRow *object)
+static void chipMaskRowFree(chipMaskRow *object)
 {
     psFree(object->label);
 }
 
-bool p2MaskCreateTable(psDB *dbh)
+bool chipMaskCreateTable(psDB *dbh)
 {
     psMetadata *md = psMetadataAlloc();
@@ -6461,5 +6461,5 @@
     }
 
-    bool status = psDBCreateTable(dbh, P2MASK_TABLE_NAME, md);
+    bool status = psDBCreateTable(dbh, CHIPMASK_TABLE_NAME, md);
 
     psFree(md);
@@ -6468,10 +6468,10 @@
 }
 
-bool p2MaskDropTable(psDB *dbh)
-{
-    return psDBDropTable(dbh, P2MASK_TABLE_NAME);
-}
-
-bool p2MaskInsert(psDB * dbh, const char *label)
+bool chipMaskDropTable(psDB *dbh)
+{
+    return psDBDropTable(dbh, CHIPMASK_TABLE_NAME);
+}
+
+bool chipMaskInsert(psDB * dbh, const char *label)
 {
     psMetadata *md = psMetadataAlloc();
@@ -6482,5 +6482,5 @@
     }
 
-    bool status = psDBInsertOneRow(dbh, P2MASK_TABLE_NAME, md);
+    bool status = psDBInsertOneRow(dbh, CHIPMASK_TABLE_NAME, md);
     psFree(md);
 
@@ -6488,11 +6488,11 @@
 }
 
-long long p2MaskDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
+long long chipMaskDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
 {
     long long       deleted = 0;
 
-    long long count = psDBDeleteRows(dbh, P2MASK_TABLE_NAME, where, limit);
+    long long count = psDBDeleteRows(dbh, CHIPMASK_TABLE_NAME, where, limit);
     if (count < 0) {
-        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p2Mask");
+        psError(PS_ERR_UNKNOWN, true, "failed to delete row from chipMask");
         return count;
 
@@ -6502,13 +6502,13 @@
     return deleted;
 }
-bool p2MaskInsertObject(psDB *dbh, p2MaskRow *object)
-{
-    return p2MaskInsert(dbh, object->label);
-}
-
-bool p2MaskInsertObjects(psDB *dbh, psArray *objects)
+bool chipMaskInsertObject(psDB *dbh, chipMaskRow *object)
+{
+    return chipMaskInsert(dbh, object->label);
+}
+
+bool chipMaskInsertObjects(psDB *dbh, psArray *objects)
 {
     for (long i = 0; i < psArrayLength(objects); i++) {
-        if (!p2MaskInsertObject(dbh, objects->data[i])) {
+        if (!chipMaskInsertObject(dbh, objects->data[i])) {
             return false;
         }
@@ -6518,11 +6518,11 @@
 }
 
-bool p2MaskInsertFits(psDB *dbh, const psFits *fits)
+bool chipMaskInsertFits(psDB *dbh, const psFits *fits)
 {
     psArray         *rowSet;
 
-    // move to (the first?) extension named  P2MASK_TABLE_NAME
-    if (!psFitsMoveExtName(fits, P2MASK_TABLE_NAME)) {
-        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", P2MASK_TABLE_NAME);
+    // move to (the first?) extension named  CHIPMASK_TABLE_NAME
+    if (!psFitsMoveExtName(fits, CHIPMASK_TABLE_NAME)) {
+        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", CHIPMASK_TABLE_NAME);
         return false;
     }
@@ -6542,5 +6542,5 @@
     }
 
-    if (!psDBInsertRows(dbh, P2MASK_TABLE_NAME, rowSet)) {
+    if (!psDBInsertRows(dbh, CHIPMASK_TABLE_NAME, rowSet)) {
         psError(PS_ERR_UNKNOWN, false, "databse insert failed");
         psFree(rowSet);
@@ -6553,9 +6553,9 @@
 }
 
-bool p2MaskSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
+bool chipMaskSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
 {
     psArray         *rowSet;
 
-    rowSet = psDBSelectRows(dbh, P2MASK_TABLE_NAME, where, limit);
+    rowSet = psDBSelectRows(dbh, CHIPMASK_TABLE_NAME, where, limit);
     if (!rowSet) {
         return false;
@@ -6563,5 +6563,5 @@
 
     // output to fits
-    if (!psFitsWriteTable(fits, NULL, rowSet, P2MASK_TABLE_NAME)) {
+    if (!psFitsWriteTable(fits, NULL, rowSet, CHIPMASK_TABLE_NAME)) {
         psError(PS_ERR_UNKNOWN, false, "FITS table write failed");
         psFree(rowSet);
@@ -6574,5 +6574,5 @@
 }
 
-psMetadata *p2MaskMetadataFromObject(const p2MaskRow *object)
+psMetadata *chipMaskMetadataFromObject(const chipMaskRow *object)
 {
     psMetadata *md = psMetadataAlloc();
@@ -6587,5 +6587,5 @@
 }
 
-p2MaskRow *p2MaskObjectFromMetadata(psMetadata *md)
+chipMaskRow *chipMaskObjectFromMetadata(psMetadata *md)
 {
 
@@ -6597,7 +6597,7 @@
     }
 
-    return p2MaskRowAlloc(label);
-}
-psArray *p2MaskSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
+    return chipMaskRowAlloc(label);
+}
+psArray *chipMaskSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
 {
     psArray         *rowSet;
@@ -6605,5 +6605,5 @@
     psU64           i;
 
-    rowSet = psDBSelectRows(dbh, P2MASK_TABLE_NAME, where, limit);
+    rowSet = psDBSelectRows(dbh, CHIPMASK_TABLE_NAME, where, limit);
     if (!rowSet) {
         return NULL;
@@ -6615,5 +6615,5 @@
 
     for (i = 0; i < rowSet->n; i++) {
-        p2MaskRow *object = p2MaskObjectFromMetadata(rowSet->data[i]);
+        chipMaskRow *object = chipMaskObjectFromMetadata(rowSet->data[i]);
         psArrayAdd(returnSet, 0, object);
         psFree(object);
@@ -6624,11 +6624,11 @@
     return returnSet;
 }
-bool p2MaskDeleteObject(psDB *dbh, const p2MaskRow *object)
-{
-    psMetadata *where = p2MaskMetadataFromObject(object);
-    long long count = psDBDeleteRows(dbh, P2MASK_TABLE_NAME, where, 0);
+bool chipMaskDeleteObject(psDB *dbh, const chipMaskRow *object)
+{
+    psMetadata *where = chipMaskMetadataFromObject(object);
+    long long count = psDBDeleteRows(dbh, CHIPMASK_TABLE_NAME, where, 0);
     psFree(where);
     if (count < 0) {
-        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p2Mask");
+        psError(PS_ERR_UNKNOWN, true, "failed to delete row from chipMask");
         return false;
     }
@@ -6636,21 +6636,21 @@
         // XXX should this be a psAbort() instead?  It is possible that
         // having an object match multiple rows was by design.
-        psError(PS_ERR_UNKNOWN, true, "p2MaskRow object matched more then one row.  Check your database schema");
-        return false;
-    }
-
-    return true;
-}
-long long p2MaskDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
+        psError(PS_ERR_UNKNOWN, true, "chipMaskRow object matched more then one row.  Check your database schema");
+        return false;
+    }
+
+    return true;
+}
+long long chipMaskDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
 {
     long long       deleted = 0;
 
     for (long long i = 0; i < objects->n; i++) {
-        p2MaskRow *object = objects->data[i];
-        psMetadata *where = p2MaskMetadataFromObject(object);
-        long long count = psDBDeleteRows(dbh, P2MASK_TABLE_NAME, where, limit);
+        chipMaskRow *object = objects->data[i];
+        psMetadata *where = chipMaskMetadataFromObject(object);
+        long long count = psDBDeleteRows(dbh, CHIPMASK_TABLE_NAME, where, limit);
         psFree(where);
         if (count < 0) {
-            psError(PS_ERR_UNKNOWN, true, "failed to delete row from p2Mask");
+            psError(PS_ERR_UNKNOWN, true, "failed to delete row from chipMask");
             return count;
         }
@@ -6661,5 +6661,5 @@
     return deleted;
 }
-bool p2MaskPrintObjects(FILE *stream, psArray *objects, bool mdcf)
+bool chipMaskPrintObjects(FILE *stream, psArray *objects, bool mdcf)
 {
     PS_ASSERT_PTR_NON_NULL(objects, false);
@@ -6667,9 +6667,9 @@
     psMetadata *output = psMetadataAlloc();
     for (long i = 0; i < psArrayLength(objects); i++) {
-        psMetadata *md = p2MaskMetadataFromObject(objects->data[i]);
+        psMetadata *md = chipMaskMetadataFromObject(objects->data[i]);
         if (!psMetadataAddMetadata(
             output,
             PS_LIST_TAIL,
-            P2MASK_TABLE_NAME,
+            CHIPMASK_TABLE_NAME,
             PS_META_DUPLICATE_OK,
             NULL,
@@ -6692,9 +6692,9 @@
     return true;
 }
-bool p2MaskPrintObject(FILE *stream, p2MaskRow *object, bool mdcf)
+bool chipMaskPrintObject(FILE *stream, chipMaskRow *object, bool mdcf)
 {
     PS_ASSERT_PTR_NON_NULL(object, false);
 
-    psMetadata *md = p2MaskMetadataFromObject(object);
+    psMetadata *md = chipMaskMetadataFromObject(object);
 
     if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
@@ -6707,16 +6707,16 @@
     return true;
 }
-static void p2ProcessedImfileRowFree(p2ProcessedImfileRow *object);
-
-p2ProcessedImfileRow *p2ProcessedImfileRowAlloc(const char *exp_tag, psS32 p2_version, psS32 p1_version, const char *class_id, const char *recipe, const char *uri, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, const char *b1_uri, const char *b2_uri, psS16 fault)
-{
-    p2ProcessedImfileRow *_object;
-
-    _object = psAlloc(sizeof(p2ProcessedImfileRow));
-    psMemSetDeallocator(_object, (psFreeFunc)p2ProcessedImfileRowFree);
+static void chipProcessedImfileRowFree(chipProcessedImfileRow *object);
+
+chipProcessedImfileRow *chipProcessedImfileRowAlloc(const char *exp_tag, psS32 chip_version, psS32 guide_version, const char *class_id, const char *recipe, const char *uri, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, const char *b1_uri, const char *b2_uri, psS16 fault)
+{
+    chipProcessedImfileRow *_object;
+
+    _object = psAlloc(sizeof(chipProcessedImfileRow));
+    psMemSetDeallocator(_object, (psFreeFunc)chipProcessedImfileRowFree);
 
     _object->exp_tag = psStringCopy(exp_tag);
-    _object->p2_version = p2_version;
-    _object->p1_version = p1_version;
+    _object->chip_version = chip_version;
+    _object->guide_version = guide_version;
     _object->class_id = psStringCopy(class_id);
     _object->recipe = psStringCopy(recipe);
@@ -6732,5 +6732,5 @@
 }
 
-static void p2ProcessedImfileRowFree(p2ProcessedImfileRow *object)
+static void chipProcessedImfileRowFree(chipProcessedImfileRow *object)
 {
     psFree(object->exp_tag);
@@ -6742,5 +6742,5 @@
 }
 
-bool p2ProcessedImfileCreateTable(psDB *dbh)
+bool chipProcessedImfileCreateTable(psDB *dbh)
 {
     psMetadata *md = psMetadataAlloc();
@@ -6750,11 +6750,11 @@
         return false;
     }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p2_version", PS_DATA_S32, "Primary Key", 0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p2_version");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p1_version", PS_DATA_S32, NULL, 0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p1_version");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "chip_version", PS_DATA_S32, "Primary Key", 0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item chip_version");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "guide_version", PS_DATA_S32, NULL, 0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item guide_version");
         psFree(md);
         return false;
@@ -6806,5 +6806,5 @@
     }
 
-    bool status = psDBCreateTable(dbh, P2PROCESSEDIMFILE_TABLE_NAME, md);
+    bool status = psDBCreateTable(dbh, CHIPPROCESSEDIMFILE_TABLE_NAME, md);
 
     psFree(md);
@@ -6813,10 +6813,10 @@
 }
 
-bool p2ProcessedImfileDropTable(psDB *dbh)
-{
-    return psDBDropTable(dbh, P2PROCESSEDIMFILE_TABLE_NAME);
-}
-
-bool p2ProcessedImfileInsert(psDB * dbh, const char *exp_tag, psS32 p2_version, psS32 p1_version, const char *class_id, const char *recipe, const char *uri, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, const char *b1_uri, const char *b2_uri, psS16 fault)
+bool chipProcessedImfileDropTable(psDB *dbh)
+{
+    return psDBDropTable(dbh, CHIPPROCESSEDIMFILE_TABLE_NAME);
+}
+
+bool chipProcessedImfileInsert(psDB * dbh, const char *exp_tag, psS32 chip_version, psS32 guide_version, const char *class_id, const char *recipe, const char *uri, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, const char *b1_uri, const char *b2_uri, psS16 fault)
 {
     psMetadata *md = psMetadataAlloc();
@@ -6826,11 +6826,11 @@
         return false;
     }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p2_version", PS_DATA_S32, NULL, p2_version)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p2_version");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p1_version", PS_DATA_S32, NULL, p1_version)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p1_version");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "chip_version", PS_DATA_S32, NULL, chip_version)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item chip_version");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "guide_version", PS_DATA_S32, NULL, guide_version)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item guide_version");
         psFree(md);
         return false;
@@ -6882,5 +6882,5 @@
     }
 
-    bool status = psDBInsertOneRow(dbh, P2PROCESSEDIMFILE_TABLE_NAME, md);
+    bool status = psDBInsertOneRow(dbh, CHIPPROCESSEDIMFILE_TABLE_NAME, md);
     psFree(md);
 
@@ -6888,11 +6888,11 @@
 }
 
-long long p2ProcessedImfileDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
+long long chipProcessedImfileDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
 {
     long long       deleted = 0;
 
-    long long count = psDBDeleteRows(dbh, P2PROCESSEDIMFILE_TABLE_NAME, where, limit);
+    long long count = psDBDeleteRows(dbh, CHIPPROCESSEDIMFILE_TABLE_NAME, where, limit);
     if (count < 0) {
-        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p2ProcessedImfile");
+        psError(PS_ERR_UNKNOWN, true, "failed to delete row from chipProcessedImfile");
         return count;
 
@@ -6902,13 +6902,13 @@
     return deleted;
 }
-bool p2ProcessedImfileInsertObject(psDB *dbh, p2ProcessedImfileRow *object)
-{
-    return p2ProcessedImfileInsert(dbh, object->exp_tag, object->p2_version, object->p1_version, object->class_id, object->recipe, object->uri, object->bg, object->bg_stdev, object->bg_mean_stdev, object->b1_uri, object->b2_uri, object->fault);
-}
-
-bool p2ProcessedImfileInsertObjects(psDB *dbh, psArray *objects)
+bool chipProcessedImfileInsertObject(psDB *dbh, chipProcessedImfileRow *object)
+{
+    return chipProcessedImfileInsert(dbh, object->exp_tag, object->chip_version, object->guide_version, object->class_id, object->recipe, object->uri, object->bg, object->bg_stdev, object->bg_mean_stdev, object->b1_uri, object->b2_uri, object->fault);
+}
+
+bool chipProcessedImfileInsertObjects(psDB *dbh, psArray *objects)
 {
     for (long i = 0; i < psArrayLength(objects); i++) {
-        if (!p2ProcessedImfileInsertObject(dbh, objects->data[i])) {
+        if (!chipProcessedImfileInsertObject(dbh, objects->data[i])) {
             return false;
         }
@@ -6918,11 +6918,11 @@
 }
 
-bool p2ProcessedImfileInsertFits(psDB *dbh, const psFits *fits)
+bool chipProcessedImfileInsertFits(psDB *dbh, const psFits *fits)
 {
     psArray         *rowSet;
 
-    // move to (the first?) extension named  P2PROCESSEDIMFILE_TABLE_NAME
-    if (!psFitsMoveExtName(fits, P2PROCESSEDIMFILE_TABLE_NAME)) {
-        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", P2PROCESSEDIMFILE_TABLE_NAME);
+    // move to (the first?) extension named  CHIPPROCESSEDIMFILE_TABLE_NAME
+    if (!psFitsMoveExtName(fits, CHIPPROCESSEDIMFILE_TABLE_NAME)) {
+        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", CHIPPROCESSEDIMFILE_TABLE_NAME);
         return false;
     }
@@ -6942,5 +6942,5 @@
     }
 
-    if (!psDBInsertRows(dbh, P2PROCESSEDIMFILE_TABLE_NAME, rowSet)) {
+    if (!psDBInsertRows(dbh, CHIPPROCESSEDIMFILE_TABLE_NAME, rowSet)) {
         psError(PS_ERR_UNKNOWN, false, "databse insert failed");
         psFree(rowSet);
@@ -6953,9 +6953,9 @@
 }
 
-bool p2ProcessedImfileSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
+bool chipProcessedImfileSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
 {
     psArray         *rowSet;
 
-    rowSet = psDBSelectRows(dbh, P2PROCESSEDIMFILE_TABLE_NAME, where, limit);
+    rowSet = psDBSelectRows(dbh, CHIPPROCESSEDIMFILE_TABLE_NAME, where, limit);
     if (!rowSet) {
         return false;
@@ -6963,5 +6963,5 @@
 
     // output to fits
-    if (!psFitsWriteTable(fits, NULL, rowSet, P2PROCESSEDIMFILE_TABLE_NAME)) {
+    if (!psFitsWriteTable(fits, NULL, rowSet, CHIPPROCESSEDIMFILE_TABLE_NAME)) {
         psError(PS_ERR_UNKNOWN, false, "FITS table write failed");
         psFree(rowSet);
@@ -6974,5 +6974,5 @@
 }
 
-psMetadata *p2ProcessedImfileMetadataFromObject(const p2ProcessedImfileRow *object)
+psMetadata *chipProcessedImfileMetadataFromObject(const chipProcessedImfileRow *object)
 {
     psMetadata *md = psMetadataAlloc();
@@ -6982,11 +6982,11 @@
         return false;
     }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p2_version", PS_DATA_S32, NULL, object->p2_version)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p2_version");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p1_version", PS_DATA_S32, NULL, object->p1_version)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p1_version");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "chip_version", PS_DATA_S32, NULL, object->chip_version)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item chip_version");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "guide_version", PS_DATA_S32, NULL, object->guide_version)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item guide_version");
         psFree(md);
         return false;
@@ -7042,5 +7042,5 @@
 }
 
-p2ProcessedImfileRow *p2ProcessedImfileObjectFromMetadata(psMetadata *md)
+chipProcessedImfileRow *chipProcessedImfileObjectFromMetadata(psMetadata *md)
 {
 
@@ -7051,12 +7051,12 @@
         return false;
     }
-    psS32 p2_version = psMetadataLookupS32(&status, md, "p2_version");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item p2_version");
-        return false;
-    }
-    psS32 p1_version = psMetadataLookupS32(&status, md, "p1_version");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item p1_version");
+    psS32 chip_version = psMetadataLookupS32(&status, md, "chip_version");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item chip_version");
+        return false;
+    }
+    psS32 guide_version = psMetadataLookupS32(&status, md, "guide_version");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item guide_version");
         return false;
     }
@@ -7107,7 +7107,7 @@
     }
 
-    return p2ProcessedImfileRowAlloc(exp_tag, p2_version, p1_version, class_id, recipe, uri, bg, bg_stdev, bg_mean_stdev, b1_uri, b2_uri, fault);
-}
-psArray *p2ProcessedImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
+    return chipProcessedImfileRowAlloc(exp_tag, chip_version, guide_version, class_id, recipe, uri, bg, bg_stdev, bg_mean_stdev, b1_uri, b2_uri, fault);
+}
+psArray *chipProcessedImfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
 {
     psArray         *rowSet;
@@ -7115,5 +7115,5 @@
     psU64           i;
 
-    rowSet = psDBSelectRows(dbh, P2PROCESSEDIMFILE_TABLE_NAME, where, limit);
+    rowSet = psDBSelectRows(dbh, CHIPPROCESSEDIMFILE_TABLE_NAME, where, limit);
     if (!rowSet) {
         return NULL;
@@ -7125,5 +7125,5 @@
 
     for (i = 0; i < rowSet->n; i++) {
-        p2ProcessedImfileRow *object = p2ProcessedImfileObjectFromMetadata(rowSet->data[i]);
+        chipProcessedImfileRow *object = chipProcessedImfileObjectFromMetadata(rowSet->data[i]);
         psArrayAdd(returnSet, 0, object);
         psFree(object);
@@ -7134,11 +7134,11 @@
     return returnSet;
 }
-bool p2ProcessedImfileDeleteObject(psDB *dbh, const p2ProcessedImfileRow *object)
-{
-    psMetadata *where = p2ProcessedImfileMetadataFromObject(object);
-    long long count = psDBDeleteRows(dbh, P2PROCESSEDIMFILE_TABLE_NAME, where, 0);
+bool chipProcessedImfileDeleteObject(psDB *dbh, const chipProcessedImfileRow *object)
+{
+    psMetadata *where = chipProcessedImfileMetadataFromObject(object);
+    long long count = psDBDeleteRows(dbh, CHIPPROCESSEDIMFILE_TABLE_NAME, where, 0);
     psFree(where);
     if (count < 0) {
-        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p2ProcessedImfile");
+        psError(PS_ERR_UNKNOWN, true, "failed to delete row from chipProcessedImfile");
         return false;
     }
@@ -7146,21 +7146,21 @@
         // XXX should this be a psAbort() instead?  It is possible that
         // having an object match multiple rows was by design.
-        psError(PS_ERR_UNKNOWN, true, "p2ProcessedImfileRow object matched more then one row.  Check your database schema");
-        return false;
-    }
-
-    return true;
-}
-long long p2ProcessedImfileDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
+        psError(PS_ERR_UNKNOWN, true, "chipProcessedImfileRow object matched more then one row.  Check your database schema");
+        return false;
+    }
+
+    return true;
+}
+long long chipProcessedImfileDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
 {
     long long       deleted = 0;
 
     for (long long i = 0; i < objects->n; i++) {
-        p2ProcessedImfileRow *object = objects->data[i];
-        psMetadata *where = p2ProcessedImfileMetadataFromObject(object);
-        long long count = psDBDeleteRows(dbh, P2PROCESSEDIMFILE_TABLE_NAME, where, limit);
+        chipProcessedImfileRow *object = objects->data[i];
+        psMetadata *where = chipProcessedImfileMetadataFromObject(object);
+        long long count = psDBDeleteRows(dbh, CHIPPROCESSEDIMFILE_TABLE_NAME, where, limit);
         psFree(where);
         if (count < 0) {
-            psError(PS_ERR_UNKNOWN, true, "failed to delete row from p2ProcessedImfile");
+            psError(PS_ERR_UNKNOWN, true, "failed to delete row from chipProcessedImfile");
             return count;
         }
@@ -7171,5 +7171,5 @@
     return deleted;
 }
-bool p2ProcessedImfilePrintObjects(FILE *stream, psArray *objects, bool mdcf)
+bool chipProcessedImfilePrintObjects(FILE *stream, psArray *objects, bool mdcf)
 {
     PS_ASSERT_PTR_NON_NULL(objects, false);
@@ -7177,9 +7177,9 @@
     psMetadata *output = psMetadataAlloc();
     for (long i = 0; i < psArrayLength(objects); i++) {
-        psMetadata *md = p2ProcessedImfileMetadataFromObject(objects->data[i]);
+        psMetadata *md = chipProcessedImfileMetadataFromObject(objects->data[i]);
         if (!psMetadataAddMetadata(
             output,
             PS_LIST_TAIL,
-            P2PROCESSEDIMFILE_TABLE_NAME,
+            CHIPPROCESSEDIMFILE_TABLE_NAME,
             PS_META_DUPLICATE_OK,
             NULL,
@@ -7202,9 +7202,9 @@
     return true;
 }
-bool p2ProcessedImfilePrintObject(FILE *stream, p2ProcessedImfileRow *object, bool mdcf)
+bool chipProcessedImfilePrintObject(FILE *stream, chipProcessedImfileRow *object, bool mdcf)
 {
     PS_ASSERT_PTR_NON_NULL(object, false);
 
-    psMetadata *md = p2ProcessedImfileMetadataFromObject(object);
+    psMetadata *md = chipProcessedImfileMetadataFromObject(object);
 
     if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
@@ -7217,16 +7217,16 @@
     return true;
 }
-static void p3PendingExpRowFree(p3PendingExpRow *object);
-
-p3PendingExpRow *p3PendingExpRowAlloc(const char *exp_tag, psS32 p3_version, psS32 p2_version, const char *label, const char *expgroup, const char *dvodb)
-{
-    p3PendingExpRow *_object;
-
-    _object = psAlloc(sizeof(p3PendingExpRow));
-    psMemSetDeallocator(_object, (psFreeFunc)p3PendingExpRowFree);
+static void camPendingExpRowFree(camPendingExpRow *object);
+
+camPendingExpRow *camPendingExpRowAlloc(const char *exp_tag, psS32 cam_version, psS32 chip_version, const char *label, const char *expgroup, const char *dvodb)
+{
+    camPendingExpRow *_object;
+
+    _object = psAlloc(sizeof(camPendingExpRow));
+    psMemSetDeallocator(_object, (psFreeFunc)camPendingExpRowFree);
 
     _object->exp_tag = psStringCopy(exp_tag);
-    _object->p3_version = p3_version;
-    _object->p2_version = p2_version;
+    _object->cam_version = cam_version;
+    _object->chip_version = chip_version;
     _object->label = psStringCopy(label);
     _object->expgroup = psStringCopy(expgroup);
@@ -7236,5 +7236,5 @@
 }
 
-static void p3PendingExpRowFree(p3PendingExpRow *object)
+static void camPendingExpRowFree(camPendingExpRow *object)
 {
     psFree(object->exp_tag);
@@ -7244,5 +7244,5 @@
 }
 
-bool p3PendingExpCreateTable(psDB *dbh)
+bool camPendingExpCreateTable(psDB *dbh)
 {
     psMetadata *md = psMetadataAlloc();
@@ -7252,11 +7252,11 @@
         return false;
     }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p3_version", PS_DATA_S32, "Primary Key", 0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p3_version");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p2_version", PS_DATA_S32, NULL, 0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p2_version");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "cam_version", PS_DATA_S32, "Primary Key", 0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item cam_version");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "chip_version", PS_DATA_S32, NULL, 0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item chip_version");
         psFree(md);
         return false;
@@ -7278,5 +7278,5 @@
     }
 
-    bool status = psDBCreateTable(dbh, P3PENDINGEXP_TABLE_NAME, md);
+    bool status = psDBCreateTable(dbh, CAMPENDINGEXP_TABLE_NAME, md);
 
     psFree(md);
@@ -7285,10 +7285,10 @@
 }
 
-bool p3PendingExpDropTable(psDB *dbh)
-{
-    return psDBDropTable(dbh, P3PENDINGEXP_TABLE_NAME);
-}
-
-bool p3PendingExpInsert(psDB * dbh, const char *exp_tag, psS32 p3_version, psS32 p2_version, const char *label, const char *expgroup, const char *dvodb)
+bool camPendingExpDropTable(psDB *dbh)
+{
+    return psDBDropTable(dbh, CAMPENDINGEXP_TABLE_NAME);
+}
+
+bool camPendingExpInsert(psDB * dbh, const char *exp_tag, psS32 cam_version, psS32 chip_version, const char *label, const char *expgroup, const char *dvodb)
 {
     psMetadata *md = psMetadataAlloc();
@@ -7298,11 +7298,11 @@
         return false;
     }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p3_version", PS_DATA_S32, NULL, p3_version)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p3_version");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p2_version", PS_DATA_S32, NULL, p2_version)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p2_version");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "cam_version", PS_DATA_S32, NULL, cam_version)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item cam_version");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "chip_version", PS_DATA_S32, NULL, chip_version)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item chip_version");
         psFree(md);
         return false;
@@ -7324,5 +7324,5 @@
     }
 
-    bool status = psDBInsertOneRow(dbh, P3PENDINGEXP_TABLE_NAME, md);
+    bool status = psDBInsertOneRow(dbh, CAMPENDINGEXP_TABLE_NAME, md);
     psFree(md);
 
@@ -7330,11 +7330,11 @@
 }
 
-long long p3PendingExpDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
+long long camPendingExpDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
 {
     long long       deleted = 0;
 
-    long long count = psDBDeleteRows(dbh, P3PENDINGEXP_TABLE_NAME, where, limit);
+    long long count = psDBDeleteRows(dbh, CAMPENDINGEXP_TABLE_NAME, where, limit);
     if (count < 0) {
-        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p3PendingExp");
+        psError(PS_ERR_UNKNOWN, true, "failed to delete row from camPendingExp");
         return count;
 
@@ -7344,13 +7344,13 @@
     return deleted;
 }
-bool p3PendingExpInsertObject(psDB *dbh, p3PendingExpRow *object)
-{
-    return p3PendingExpInsert(dbh, object->exp_tag, object->p3_version, object->p2_version, object->label, object->expgroup, object->dvodb);
-}
-
-bool p3PendingExpInsertObjects(psDB *dbh, psArray *objects)
+bool camPendingExpInsertObject(psDB *dbh, camPendingExpRow *object)
+{
+    return camPendingExpInsert(dbh, object->exp_tag, object->cam_version, object->chip_version, object->label, object->expgroup, object->dvodb);
+}
+
+bool camPendingExpInsertObjects(psDB *dbh, psArray *objects)
 {
     for (long i = 0; i < psArrayLength(objects); i++) {
-        if (!p3PendingExpInsertObject(dbh, objects->data[i])) {
+        if (!camPendingExpInsertObject(dbh, objects->data[i])) {
             return false;
         }
@@ -7360,11 +7360,11 @@
 }
 
-bool p3PendingExpInsertFits(psDB *dbh, const psFits *fits)
+bool camPendingExpInsertFits(psDB *dbh, const psFits *fits)
 {
     psArray         *rowSet;
 
-    // move to (the first?) extension named  P3PENDINGEXP_TABLE_NAME
-    if (!psFitsMoveExtName(fits, P3PENDINGEXP_TABLE_NAME)) {
-        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", P3PENDINGEXP_TABLE_NAME);
+    // move to (the first?) extension named  CAMPENDINGEXP_TABLE_NAME
+    if (!psFitsMoveExtName(fits, CAMPENDINGEXP_TABLE_NAME)) {
+        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", CAMPENDINGEXP_TABLE_NAME);
         return false;
     }
@@ -7384,5 +7384,5 @@
     }
 
-    if (!psDBInsertRows(dbh, P3PENDINGEXP_TABLE_NAME, rowSet)) {
+    if (!psDBInsertRows(dbh, CAMPENDINGEXP_TABLE_NAME, rowSet)) {
         psError(PS_ERR_UNKNOWN, false, "databse insert failed");
         psFree(rowSet);
@@ -7395,9 +7395,9 @@
 }
 
-bool p3PendingExpSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
+bool camPendingExpSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
 {
     psArray         *rowSet;
 
-    rowSet = psDBSelectRows(dbh, P3PENDINGEXP_TABLE_NAME, where, limit);
+    rowSet = psDBSelectRows(dbh, CAMPENDINGEXP_TABLE_NAME, where, limit);
     if (!rowSet) {
         return false;
@@ -7405,5 +7405,5 @@
 
     // output to fits
-    if (!psFitsWriteTable(fits, NULL, rowSet, P3PENDINGEXP_TABLE_NAME)) {
+    if (!psFitsWriteTable(fits, NULL, rowSet, CAMPENDINGEXP_TABLE_NAME)) {
         psError(PS_ERR_UNKNOWN, false, "FITS table write failed");
         psFree(rowSet);
@@ -7416,5 +7416,5 @@
 }
 
-psMetadata *p3PendingExpMetadataFromObject(const p3PendingExpRow *object)
+psMetadata *camPendingExpMetadataFromObject(const camPendingExpRow *object)
 {
     psMetadata *md = psMetadataAlloc();
@@ -7424,11 +7424,11 @@
         return false;
     }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p3_version", PS_DATA_S32, NULL, object->p3_version)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p3_version");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p2_version", PS_DATA_S32, NULL, object->p2_version)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p2_version");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "cam_version", PS_DATA_S32, NULL, object->cam_version)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item cam_version");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "chip_version", PS_DATA_S32, NULL, object->chip_version)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item chip_version");
         psFree(md);
         return false;
@@ -7454,5 +7454,5 @@
 }
 
-p3PendingExpRow *p3PendingExpObjectFromMetadata(psMetadata *md)
+camPendingExpRow *camPendingExpObjectFromMetadata(psMetadata *md)
 {
 
@@ -7463,12 +7463,12 @@
         return false;
     }
-    psS32 p3_version = psMetadataLookupS32(&status, md, "p3_version");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item p3_version");
-        return false;
-    }
-    psS32 p2_version = psMetadataLookupS32(&status, md, "p2_version");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item p2_version");
+    psS32 cam_version = psMetadataLookupS32(&status, md, "cam_version");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item cam_version");
+        return false;
+    }
+    psS32 chip_version = psMetadataLookupS32(&status, md, "chip_version");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item chip_version");
         return false;
     }
@@ -7489,7 +7489,7 @@
     }
 
-    return p3PendingExpRowAlloc(exp_tag, p3_version, p2_version, label, expgroup, dvodb);
-}
-psArray *p3PendingExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
+    return camPendingExpRowAlloc(exp_tag, cam_version, chip_version, label, expgroup, dvodb);
+}
+psArray *camPendingExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
 {
     psArray         *rowSet;
@@ -7497,5 +7497,5 @@
     psU64           i;
 
-    rowSet = psDBSelectRows(dbh, P3PENDINGEXP_TABLE_NAME, where, limit);
+    rowSet = psDBSelectRows(dbh, CAMPENDINGEXP_TABLE_NAME, where, limit);
     if (!rowSet) {
         return NULL;
@@ -7507,5 +7507,5 @@
 
     for (i = 0; i < rowSet->n; i++) {
-        p3PendingExpRow *object = p3PendingExpObjectFromMetadata(rowSet->data[i]);
+        camPendingExpRow *object = camPendingExpObjectFromMetadata(rowSet->data[i]);
         psArrayAdd(returnSet, 0, object);
         psFree(object);
@@ -7516,11 +7516,11 @@
     return returnSet;
 }
-bool p3PendingExpDeleteObject(psDB *dbh, const p3PendingExpRow *object)
-{
-    psMetadata *where = p3PendingExpMetadataFromObject(object);
-    long long count = psDBDeleteRows(dbh, P3PENDINGEXP_TABLE_NAME, where, 0);
+bool camPendingExpDeleteObject(psDB *dbh, const camPendingExpRow *object)
+{
+    psMetadata *where = camPendingExpMetadataFromObject(object);
+    long long count = psDBDeleteRows(dbh, CAMPENDINGEXP_TABLE_NAME, where, 0);
     psFree(where);
     if (count < 0) {
-        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p3PendingExp");
+        psError(PS_ERR_UNKNOWN, true, "failed to delete row from camPendingExp");
         return false;
     }
@@ -7528,21 +7528,21 @@
         // XXX should this be a psAbort() instead?  It is possible that
         // having an object match multiple rows was by design.
-        psError(PS_ERR_UNKNOWN, true, "p3PendingExpRow object matched more then one row.  Check your database schema");
-        return false;
-    }
-
-    return true;
-}
-long long p3PendingExpDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
+        psError(PS_ERR_UNKNOWN, true, "camPendingExpRow object matched more then one row.  Check your database schema");
+        return false;
+    }
+
+    return true;
+}
+long long camPendingExpDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
 {
     long long       deleted = 0;
 
     for (long long i = 0; i < objects->n; i++) {
-        p3PendingExpRow *object = objects->data[i];
-        psMetadata *where = p3PendingExpMetadataFromObject(object);
-        long long count = psDBDeleteRows(dbh, P3PENDINGEXP_TABLE_NAME, where, limit);
+        camPendingExpRow *object = objects->data[i];
+        psMetadata *where = camPendingExpMetadataFromObject(object);
+        long long count = psDBDeleteRows(dbh, CAMPENDINGEXP_TABLE_NAME, where, limit);
         psFree(where);
         if (count < 0) {
-            psError(PS_ERR_UNKNOWN, true, "failed to delete row from p3PendingExp");
+            psError(PS_ERR_UNKNOWN, true, "failed to delete row from camPendingExp");
             return count;
         }
@@ -7553,5 +7553,5 @@
     return deleted;
 }
-bool p3PendingExpPrintObjects(FILE *stream, psArray *objects, bool mdcf)
+bool camPendingExpPrintObjects(FILE *stream, psArray *objects, bool mdcf)
 {
     PS_ASSERT_PTR_NON_NULL(objects, false);
@@ -7559,9 +7559,9 @@
     psMetadata *output = psMetadataAlloc();
     for (long i = 0; i < psArrayLength(objects); i++) {
-        psMetadata *md = p3PendingExpMetadataFromObject(objects->data[i]);
+        psMetadata *md = camPendingExpMetadataFromObject(objects->data[i]);
         if (!psMetadataAddMetadata(
             output,
             PS_LIST_TAIL,
-            P3PENDINGEXP_TABLE_NAME,
+            CAMPENDINGEXP_TABLE_NAME,
             PS_META_DUPLICATE_OK,
             NULL,
@@ -7584,9 +7584,9 @@
     return true;
 }
-bool p3PendingExpPrintObject(FILE *stream, p3PendingExpRow *object, bool mdcf)
+bool camPendingExpPrintObject(FILE *stream, camPendingExpRow *object, bool mdcf)
 {
     PS_ASSERT_PTR_NON_NULL(object, false);
 
-    psMetadata *md = p3PendingExpMetadataFromObject(object);
+    psMetadata *md = camPendingExpMetadataFromObject(object);
 
     if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
@@ -7599,16 +7599,16 @@
     return true;
 }
-static void p3ProcessedExpRowFree(p3ProcessedExpRow *object);
-
-p3ProcessedExpRow *p3ProcessedExpRowAlloc(const char *exp_tag, psS32 p3_version, psS32 p2_version, const char *label, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF32 sigma_ra, psF32 sigma_dec, psS32 nastro, const char *b1_uri, const char *b2_uri, psF32 zp_mean, psF32 zp_stdev, psS16 fault, const char *expgroup, const char *dvodb)
-{
-    p3ProcessedExpRow *_object;
-
-    _object = psAlloc(sizeof(p3ProcessedExpRow));
-    psMemSetDeallocator(_object, (psFreeFunc)p3ProcessedExpRowFree);
+static void camProcessedExpRowFree(camProcessedExpRow *object);
+
+camProcessedExpRow *camProcessedExpRowAlloc(const char *exp_tag, psS32 cam_version, psS32 chip_version, const char *label, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF32 sigma_ra, psF32 sigma_dec, psS32 nastro, const char *b1_uri, const char *b2_uri, psF32 zp_mean, psF32 zp_stdev, psS16 fault, const char *expgroup, const char *dvodb)
+{
+    camProcessedExpRow *_object;
+
+    _object = psAlloc(sizeof(camProcessedExpRow));
+    psMemSetDeallocator(_object, (psFreeFunc)camProcessedExpRowFree);
 
     _object->exp_tag = psStringCopy(exp_tag);
-    _object->p3_version = p3_version;
-    _object->p2_version = p2_version;
+    _object->cam_version = cam_version;
+    _object->chip_version = chip_version;
     _object->label = psStringCopy(label);
     _object->uri = psStringCopy(uri);
@@ -7631,5 +7631,5 @@
 }
 
-static void p3ProcessedExpRowFree(p3ProcessedExpRow *object)
+static void camProcessedExpRowFree(camProcessedExpRow *object)
 {
     psFree(object->exp_tag);
@@ -7643,5 +7643,5 @@
 }
 
-bool p3ProcessedExpCreateTable(psDB *dbh)
+bool camProcessedExpCreateTable(psDB *dbh)
 {
     psMetadata *md = psMetadataAlloc();
@@ -7651,11 +7651,11 @@
         return false;
     }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p3_version", PS_DATA_S32, "Primary Key", 0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p3_version");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p2_version", PS_DATA_S32, NULL, 0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p2_version");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "cam_version", PS_DATA_S32, "Primary Key", 0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item cam_version");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "chip_version", PS_DATA_S32, NULL, 0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item chip_version");
         psFree(md);
         return false;
@@ -7742,5 +7742,5 @@
     }
 
-    bool status = psDBCreateTable(dbh, P3PROCESSEDEXP_TABLE_NAME, md);
+    bool status = psDBCreateTable(dbh, CAMPROCESSEDEXP_TABLE_NAME, md);
 
     psFree(md);
@@ -7749,10 +7749,10 @@
 }
 
-bool p3ProcessedExpDropTable(psDB *dbh)
-{
-    return psDBDropTable(dbh, P3PROCESSEDEXP_TABLE_NAME);
-}
-
-bool p3ProcessedExpInsert(psDB * dbh, const char *exp_tag, psS32 p3_version, psS32 p2_version, const char *label, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF32 sigma_ra, psF32 sigma_dec, psS32 nastro, const char *b1_uri, const char *b2_uri, psF32 zp_mean, psF32 zp_stdev, psS16 fault, const char *expgroup, const char *dvodb)
+bool camProcessedExpDropTable(psDB *dbh)
+{
+    return psDBDropTable(dbh, CAMPROCESSEDEXP_TABLE_NAME);
+}
+
+bool camProcessedExpInsert(psDB * dbh, const char *exp_tag, psS32 cam_version, psS32 chip_version, const char *label, const char *uri, const char *recipe, psF64 bg, psF64 bg_stdev, psF64 bg_mean_stdev, psF32 sigma_ra, psF32 sigma_dec, psS32 nastro, const char *b1_uri, const char *b2_uri, psF32 zp_mean, psF32 zp_stdev, psS16 fault, const char *expgroup, const char *dvodb)
 {
     psMetadata *md = psMetadataAlloc();
@@ -7762,11 +7762,11 @@
         return false;
     }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p3_version", PS_DATA_S32, NULL, p3_version)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p3_version");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p2_version", PS_DATA_S32, NULL, p2_version)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p2_version");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "cam_version", PS_DATA_S32, NULL, cam_version)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item cam_version");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "chip_version", PS_DATA_S32, NULL, chip_version)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item chip_version");
         psFree(md);
         return false;
@@ -7853,5 +7853,5 @@
     }
 
-    bool status = psDBInsertOneRow(dbh, P3PROCESSEDEXP_TABLE_NAME, md);
+    bool status = psDBInsertOneRow(dbh, CAMPROCESSEDEXP_TABLE_NAME, md);
     psFree(md);
 
@@ -7859,11 +7859,11 @@
 }
 
-long long p3ProcessedExpDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
+long long camProcessedExpDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
 {
     long long       deleted = 0;
 
-    long long count = psDBDeleteRows(dbh, P3PROCESSEDEXP_TABLE_NAME, where, limit);
+    long long count = psDBDeleteRows(dbh, CAMPROCESSEDEXP_TABLE_NAME, where, limit);
     if (count < 0) {
-        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p3ProcessedExp");
+        psError(PS_ERR_UNKNOWN, true, "failed to delete row from camProcessedExp");
         return count;
 
@@ -7873,13 +7873,13 @@
     return deleted;
 }
-bool p3ProcessedExpInsertObject(psDB *dbh, p3ProcessedExpRow *object)
-{
-    return p3ProcessedExpInsert(dbh, object->exp_tag, object->p3_version, object->p2_version, object->label, object->uri, object->recipe, object->bg, object->bg_stdev, object->bg_mean_stdev, object->sigma_ra, object->sigma_dec, object->nastro, object->b1_uri, object->b2_uri, object->zp_mean, object->zp_stdev, object->fault, object->expgroup, object->dvodb);
-}
-
-bool p3ProcessedExpInsertObjects(psDB *dbh, psArray *objects)
+bool camProcessedExpInsertObject(psDB *dbh, camProcessedExpRow *object)
+{
+    return camProcessedExpInsert(dbh, object->exp_tag, object->cam_version, object->chip_version, object->label, object->uri, object->recipe, object->bg, object->bg_stdev, object->bg_mean_stdev, object->sigma_ra, object->sigma_dec, object->nastro, object->b1_uri, object->b2_uri, object->zp_mean, object->zp_stdev, object->fault, object->expgroup, object->dvodb);
+}
+
+bool camProcessedExpInsertObjects(psDB *dbh, psArray *objects)
 {
     for (long i = 0; i < psArrayLength(objects); i++) {
-        if (!p3ProcessedExpInsertObject(dbh, objects->data[i])) {
+        if (!camProcessedExpInsertObject(dbh, objects->data[i])) {
             return false;
         }
@@ -7889,11 +7889,11 @@
 }
 
-bool p3ProcessedExpInsertFits(psDB *dbh, const psFits *fits)
+bool camProcessedExpInsertFits(psDB *dbh, const psFits *fits)
 {
     psArray         *rowSet;
 
-    // move to (the first?) extension named  P3PROCESSEDEXP_TABLE_NAME
-    if (!psFitsMoveExtName(fits, P3PROCESSEDEXP_TABLE_NAME)) {
-        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", P3PROCESSEDEXP_TABLE_NAME);
+    // move to (the first?) extension named  CAMPROCESSEDEXP_TABLE_NAME
+    if (!psFitsMoveExtName(fits, CAMPROCESSEDEXP_TABLE_NAME)) {
+        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", CAMPROCESSEDEXP_TABLE_NAME);
         return false;
     }
@@ -7913,5 +7913,5 @@
     }
 
-    if (!psDBInsertRows(dbh, P3PROCESSEDEXP_TABLE_NAME, rowSet)) {
+    if (!psDBInsertRows(dbh, CAMPROCESSEDEXP_TABLE_NAME, rowSet)) {
         psError(PS_ERR_UNKNOWN, false, "databse insert failed");
         psFree(rowSet);
@@ -7924,9 +7924,9 @@
 }
 
-bool p3ProcessedExpSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
+bool camProcessedExpSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
 {
     psArray         *rowSet;
 
-    rowSet = psDBSelectRows(dbh, P3PROCESSEDEXP_TABLE_NAME, where, limit);
+    rowSet = psDBSelectRows(dbh, CAMPROCESSEDEXP_TABLE_NAME, where, limit);
     if (!rowSet) {
         return false;
@@ -7934,5 +7934,5 @@
 
     // output to fits
-    if (!psFitsWriteTable(fits, NULL, rowSet, P3PROCESSEDEXP_TABLE_NAME)) {
+    if (!psFitsWriteTable(fits, NULL, rowSet, CAMPROCESSEDEXP_TABLE_NAME)) {
         psError(PS_ERR_UNKNOWN, false, "FITS table write failed");
         psFree(rowSet);
@@ -7945,5 +7945,5 @@
 }
 
-psMetadata *p3ProcessedExpMetadataFromObject(const p3ProcessedExpRow *object)
+psMetadata *camProcessedExpMetadataFromObject(const camProcessedExpRow *object)
 {
     psMetadata *md = psMetadataAlloc();
@@ -7953,11 +7953,11 @@
         return false;
     }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p3_version", PS_DATA_S32, NULL, object->p3_version)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p3_version");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p2_version", PS_DATA_S32, NULL, object->p2_version)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p2_version");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "cam_version", PS_DATA_S32, NULL, object->cam_version)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item cam_version");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "chip_version", PS_DATA_S32, NULL, object->chip_version)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item chip_version");
         psFree(md);
         return false;
@@ -8048,5 +8048,5 @@
 }
 
-p3ProcessedExpRow *p3ProcessedExpObjectFromMetadata(psMetadata *md)
+camProcessedExpRow *camProcessedExpObjectFromMetadata(psMetadata *md)
 {
 
@@ -8057,12 +8057,12 @@
         return false;
     }
-    psS32 p3_version = psMetadataLookupS32(&status, md, "p3_version");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item p3_version");
-        return false;
-    }
-    psS32 p2_version = psMetadataLookupS32(&status, md, "p2_version");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item p2_version");
+    psS32 cam_version = psMetadataLookupS32(&status, md, "cam_version");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item cam_version");
+        return false;
+    }
+    psS32 chip_version = psMetadataLookupS32(&status, md, "chip_version");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item chip_version");
         return false;
     }
@@ -8148,7 +8148,7 @@
     }
 
-    return p3ProcessedExpRowAlloc(exp_tag, p3_version, p2_version, label, uri, recipe, bg, bg_stdev, bg_mean_stdev, sigma_ra, sigma_dec, nastro, b1_uri, b2_uri, zp_mean, zp_stdev, fault, expgroup, dvodb);
-}
-psArray *p3ProcessedExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
+    return camProcessedExpRowAlloc(exp_tag, cam_version, chip_version, label, uri, recipe, bg, bg_stdev, bg_mean_stdev, sigma_ra, sigma_dec, nastro, b1_uri, b2_uri, zp_mean, zp_stdev, fault, expgroup, dvodb);
+}
+psArray *camProcessedExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
 {
     psArray         *rowSet;
@@ -8156,5 +8156,5 @@
     psU64           i;
 
-    rowSet = psDBSelectRows(dbh, P3PROCESSEDEXP_TABLE_NAME, where, limit);
+    rowSet = psDBSelectRows(dbh, CAMPROCESSEDEXP_TABLE_NAME, where, limit);
     if (!rowSet) {
         return NULL;
@@ -8166,5 +8166,5 @@
 
     for (i = 0; i < rowSet->n; i++) {
-        p3ProcessedExpRow *object = p3ProcessedExpObjectFromMetadata(rowSet->data[i]);
+        camProcessedExpRow *object = camProcessedExpObjectFromMetadata(rowSet->data[i]);
         psArrayAdd(returnSet, 0, object);
         psFree(object);
@@ -8175,11 +8175,11 @@
     return returnSet;
 }
-bool p3ProcessedExpDeleteObject(psDB *dbh, const p3ProcessedExpRow *object)
-{
-    psMetadata *where = p3ProcessedExpMetadataFromObject(object);
-    long long count = psDBDeleteRows(dbh, P3PROCESSEDEXP_TABLE_NAME, where, 0);
+bool camProcessedExpDeleteObject(psDB *dbh, const camProcessedExpRow *object)
+{
+    psMetadata *where = camProcessedExpMetadataFromObject(object);
+    long long count = psDBDeleteRows(dbh, CAMPROCESSEDEXP_TABLE_NAME, where, 0);
     psFree(where);
     if (count < 0) {
-        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p3ProcessedExp");
+        psError(PS_ERR_UNKNOWN, true, "failed to delete row from camProcessedExp");
         return false;
     }
@@ -8187,21 +8187,21 @@
         // XXX should this be a psAbort() instead?  It is possible that
         // having an object match multiple rows was by design.
-        psError(PS_ERR_UNKNOWN, true, "p3ProcessedExpRow object matched more then one row.  Check your database schema");
-        return false;
-    }
-
-    return true;
-}
-long long p3ProcessedExpDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
+        psError(PS_ERR_UNKNOWN, true, "camProcessedExpRow object matched more then one row.  Check your database schema");
+        return false;
+    }
+
+    return true;
+}
+long long camProcessedExpDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
 {
     long long       deleted = 0;
 
     for (long long i = 0; i < objects->n; i++) {
-        p3ProcessedExpRow *object = objects->data[i];
-        psMetadata *where = p3ProcessedExpMetadataFromObject(object);
-        long long count = psDBDeleteRows(dbh, P3PROCESSEDEXP_TABLE_NAME, where, limit);
+        camProcessedExpRow *object = objects->data[i];
+        psMetadata *where = camProcessedExpMetadataFromObject(object);
+        long long count = psDBDeleteRows(dbh, CAMPROCESSEDEXP_TABLE_NAME, where, limit);
         psFree(where);
         if (count < 0) {
-            psError(PS_ERR_UNKNOWN, true, "failed to delete row from p3ProcessedExp");
+            psError(PS_ERR_UNKNOWN, true, "failed to delete row from camProcessedExp");
             return count;
         }
@@ -8212,5 +8212,5 @@
     return deleted;
 }
-bool p3ProcessedExpPrintObjects(FILE *stream, psArray *objects, bool mdcf)
+bool camProcessedExpPrintObjects(FILE *stream, psArray *objects, bool mdcf)
 {
     PS_ASSERT_PTR_NON_NULL(objects, false);
@@ -8218,9 +8218,9 @@
     psMetadata *output = psMetadataAlloc();
     for (long i = 0; i < psArrayLength(objects); i++) {
-        psMetadata *md = p3ProcessedExpMetadataFromObject(objects->data[i]);
+        psMetadata *md = camProcessedExpMetadataFromObject(objects->data[i]);
         if (!psMetadataAddMetadata(
             output,
             PS_LIST_TAIL,
-            P3PROCESSEDEXP_TABLE_NAME,
+            CAMPROCESSEDEXP_TABLE_NAME,
             PS_META_DUPLICATE_OK,
             NULL,
@@ -8243,9 +8243,9 @@
     return true;
 }
-bool p3ProcessedExpPrintObject(FILE *stream, p3ProcessedExpRow *object, bool mdcf)
+bool camProcessedExpPrintObject(FILE *stream, camProcessedExpRow *object, bool mdcf)
 {
     PS_ASSERT_PTR_NON_NULL(object, false);
 
-    psMetadata *md = p3ProcessedExpMetadataFromObject(object);
+    psMetadata *md = camProcessedExpMetadataFromObject(object);
 
     if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
@@ -8258,12 +8258,12 @@
     return true;
 }
-static void p3MaskRowFree(p3MaskRow *object);
-
-p3MaskRow *p3MaskRowAlloc(const char *label)
-{
-    p3MaskRow       *_object;
-
-    _object = psAlloc(sizeof(p3MaskRow));
-    psMemSetDeallocator(_object, (psFreeFunc)p3MaskRowFree);
+static void camMaskRowFree(camMaskRow *object);
+
+camMaskRow *camMaskRowAlloc(const char *label)
+{
+    camMaskRow      *_object;
+
+    _object = psAlloc(sizeof(camMaskRow));
+    psMemSetDeallocator(_object, (psFreeFunc)camMaskRowFree);
 
     _object->label = psStringCopy(label);
@@ -8272,10 +8272,10 @@
 }
 
-static void p3MaskRowFree(p3MaskRow *object)
+static void camMaskRowFree(camMaskRow *object)
 {
     psFree(object->label);
 }
 
-bool p3MaskCreateTable(psDB *dbh)
+bool camMaskCreateTable(psDB *dbh)
 {
     psMetadata *md = psMetadataAlloc();
@@ -8286,5 +8286,5 @@
     }
 
-    bool status = psDBCreateTable(dbh, P3MASK_TABLE_NAME, md);
+    bool status = psDBCreateTable(dbh, CAMMASK_TABLE_NAME, md);
 
     psFree(md);
@@ -8293,10 +8293,10 @@
 }
 
-bool p3MaskDropTable(psDB *dbh)
-{
-    return psDBDropTable(dbh, P3MASK_TABLE_NAME);
-}
-
-bool p3MaskInsert(psDB * dbh, const char *label)
+bool camMaskDropTable(psDB *dbh)
+{
+    return psDBDropTable(dbh, CAMMASK_TABLE_NAME);
+}
+
+bool camMaskInsert(psDB * dbh, const char *label)
 {
     psMetadata *md = psMetadataAlloc();
@@ -8307,5 +8307,5 @@
     }
 
-    bool status = psDBInsertOneRow(dbh, P3MASK_TABLE_NAME, md);
+    bool status = psDBInsertOneRow(dbh, CAMMASK_TABLE_NAME, md);
     psFree(md);
 
@@ -8313,11 +8313,11 @@
 }
 
-long long p3MaskDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
+long long camMaskDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
 {
     long long       deleted = 0;
 
-    long long count = psDBDeleteRows(dbh, P3MASK_TABLE_NAME, where, limit);
+    long long count = psDBDeleteRows(dbh, CAMMASK_TABLE_NAME, where, limit);
     if (count < 0) {
-        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p3Mask");
+        psError(PS_ERR_UNKNOWN, true, "failed to delete row from camMask");
         return count;
 
@@ -8327,13 +8327,13 @@
     return deleted;
 }
-bool p3MaskInsertObject(psDB *dbh, p3MaskRow *object)
-{
-    return p3MaskInsert(dbh, object->label);
-}
-
-bool p3MaskInsertObjects(psDB *dbh, psArray *objects)
+bool camMaskInsertObject(psDB *dbh, camMaskRow *object)
+{
+    return camMaskInsert(dbh, object->label);
+}
+
+bool camMaskInsertObjects(psDB *dbh, psArray *objects)
 {
     for (long i = 0; i < psArrayLength(objects); i++) {
-        if (!p3MaskInsertObject(dbh, objects->data[i])) {
+        if (!camMaskInsertObject(dbh, objects->data[i])) {
             return false;
         }
@@ -8343,11 +8343,11 @@
 }
 
-bool p3MaskInsertFits(psDB *dbh, const psFits *fits)
+bool camMaskInsertFits(psDB *dbh, const psFits *fits)
 {
     psArray         *rowSet;
 
-    // move to (the first?) extension named  P3MASK_TABLE_NAME
-    if (!psFitsMoveExtName(fits, P3MASK_TABLE_NAME)) {
-        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", P3MASK_TABLE_NAME);
+    // move to (the first?) extension named  CAMMASK_TABLE_NAME
+    if (!psFitsMoveExtName(fits, CAMMASK_TABLE_NAME)) {
+        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", CAMMASK_TABLE_NAME);
         return false;
     }
@@ -8367,5 +8367,5 @@
     }
 
-    if (!psDBInsertRows(dbh, P3MASK_TABLE_NAME, rowSet)) {
+    if (!psDBInsertRows(dbh, CAMMASK_TABLE_NAME, rowSet)) {
         psError(PS_ERR_UNKNOWN, false, "databse insert failed");
         psFree(rowSet);
@@ -8378,9 +8378,9 @@
 }
 
-bool p3MaskSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
+bool camMaskSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
 {
     psArray         *rowSet;
 
-    rowSet = psDBSelectRows(dbh, P3MASK_TABLE_NAME, where, limit);
+    rowSet = psDBSelectRows(dbh, CAMMASK_TABLE_NAME, where, limit);
     if (!rowSet) {
         return false;
@@ -8388,5 +8388,5 @@
 
     // output to fits
-    if (!psFitsWriteTable(fits, NULL, rowSet, P3MASK_TABLE_NAME)) {
+    if (!psFitsWriteTable(fits, NULL, rowSet, CAMMASK_TABLE_NAME)) {
         psError(PS_ERR_UNKNOWN, false, "FITS table write failed");
         psFree(rowSet);
@@ -8399,5 +8399,5 @@
 }
 
-psMetadata *p3MaskMetadataFromObject(const p3MaskRow *object)
+psMetadata *camMaskMetadataFromObject(const camMaskRow *object)
 {
     psMetadata *md = psMetadataAlloc();
@@ -8412,5 +8412,5 @@
 }
 
-p3MaskRow *p3MaskObjectFromMetadata(psMetadata *md)
+camMaskRow *camMaskObjectFromMetadata(psMetadata *md)
 {
 
@@ -8422,7 +8422,7 @@
     }
 
-    return p3MaskRowAlloc(label);
-}
-psArray *p3MaskSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
+    return camMaskRowAlloc(label);
+}
+psArray *camMaskSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
 {
     psArray         *rowSet;
@@ -8430,5 +8430,5 @@
     psU64           i;
 
-    rowSet = psDBSelectRows(dbh, P3MASK_TABLE_NAME, where, limit);
+    rowSet = psDBSelectRows(dbh, CAMMASK_TABLE_NAME, where, limit);
     if (!rowSet) {
         return NULL;
@@ -8440,5 +8440,5 @@
 
     for (i = 0; i < rowSet->n; i++) {
-        p3MaskRow *object = p3MaskObjectFromMetadata(rowSet->data[i]);
+        camMaskRow *object = camMaskObjectFromMetadata(rowSet->data[i]);
         psArrayAdd(returnSet, 0, object);
         psFree(object);
@@ -8449,11 +8449,11 @@
     return returnSet;
 }
-bool p3MaskDeleteObject(psDB *dbh, const p3MaskRow *object)
-{
-    psMetadata *where = p3MaskMetadataFromObject(object);
-    long long count = psDBDeleteRows(dbh, P3MASK_TABLE_NAME, where, 0);
+bool camMaskDeleteObject(psDB *dbh, const camMaskRow *object)
+{
+    psMetadata *where = camMaskMetadataFromObject(object);
+    long long count = psDBDeleteRows(dbh, CAMMASK_TABLE_NAME, where, 0);
     psFree(where);
     if (count < 0) {
-        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p3Mask");
+        psError(PS_ERR_UNKNOWN, true, "failed to delete row from camMask");
         return false;
     }
@@ -8461,21 +8461,21 @@
         // XXX should this be a psAbort() instead?  It is possible that
         // having an object match multiple rows was by design.
-        psError(PS_ERR_UNKNOWN, true, "p3MaskRow object matched more then one row.  Check your database schema");
-        return false;
-    }
-
-    return true;
-}
-long long p3MaskDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
+        psError(PS_ERR_UNKNOWN, true, "camMaskRow object matched more then one row.  Check your database schema");
+        return false;
+    }
+
+    return true;
+}
+long long camMaskDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
 {
     long long       deleted = 0;
 
     for (long long i = 0; i < objects->n; i++) {
-        p3MaskRow *object = objects->data[i];
-        psMetadata *where = p3MaskMetadataFromObject(object);
-        long long count = psDBDeleteRows(dbh, P3MASK_TABLE_NAME, where, limit);
+        camMaskRow *object = objects->data[i];
+        psMetadata *where = camMaskMetadataFromObject(object);
+        long long count = psDBDeleteRows(dbh, CAMMASK_TABLE_NAME, where, limit);
         psFree(where);
         if (count < 0) {
-            psError(PS_ERR_UNKNOWN, true, "failed to delete row from p3Mask");
+            psError(PS_ERR_UNKNOWN, true, "failed to delete row from camMask");
             return count;
         }
@@ -8486,5 +8486,5 @@
     return deleted;
 }
-bool p3MaskPrintObjects(FILE *stream, psArray *objects, bool mdcf)
+bool camMaskPrintObjects(FILE *stream, psArray *objects, bool mdcf)
 {
     PS_ASSERT_PTR_NON_NULL(objects, false);
@@ -8492,9 +8492,9 @@
     psMetadata *output = psMetadataAlloc();
     for (long i = 0; i < psArrayLength(objects); i++) {
-        psMetadata *md = p3MaskMetadataFromObject(objects->data[i]);
+        psMetadata *md = camMaskMetadataFromObject(objects->data[i]);
         if (!psMetadataAddMetadata(
             output,
             PS_LIST_TAIL,
-            P3MASK_TABLE_NAME,
+            CAMMASK_TABLE_NAME,
             PS_META_DUPLICATE_OK,
             NULL,
@@ -8517,9 +8517,9 @@
     return true;
 }
-bool p3MaskPrintObject(FILE *stream, p3MaskRow *object, bool mdcf)
+bool camMaskPrintObject(FILE *stream, camMaskRow *object, bool mdcf)
 {
     PS_ASSERT_PTR_NON_NULL(object, false);
 
-    psMetadata *md = p3MaskMetadataFromObject(object);
+    psMetadata *md = camMaskMetadataFromObject(object);
 
     if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
@@ -13744,14 +13744,14 @@
     return true;
 }
-static void p4RunRowFree(p4RunRow *object);
-
-p4RunRow *p4RunRowAlloc(psS32 p4_id, const char *mode, const char *state, const char *workdir, const char *dvodb, psTime* registered)
-{
-    p4RunRow        *_object;
-
-    _object = psAlloc(sizeof(p4RunRow));
-    psMemSetDeallocator(_object, (psFreeFunc)p4RunRowFree);
-
-    _object->p4_id = p4_id;
+static void warpRunRowFree(warpRunRow *object);
+
+warpRunRow *warpRunRowAlloc(psS32 warp_id, const char *mode, const char *state, const char *workdir, const char *dvodb, psTime* registered)
+{
+    warpRunRow      *_object;
+
+    _object = psAlloc(sizeof(warpRunRow));
+    psMemSetDeallocator(_object, (psFreeFunc)warpRunRowFree);
+
+    _object->warp_id = warp_id;
     _object->mode = psStringCopy(mode);
     _object->state = psStringCopy(state);
@@ -13763,5 +13763,5 @@
 }
 
-static void p4RunRowFree(p4RunRow *object)
+static void warpRunRowFree(warpRunRow *object)
 {
     psFree(object->mode);
@@ -13772,9 +13772,9 @@
 }
 
-bool p4RunCreateTable(psDB *dbh)
+bool warpRunCreateTable(psDB *dbh)
 {
     psMetadata *md = psMetadataAlloc();
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p4_id", PS_DATA_S32, "Primary Key AUTO_INCREMENT", 0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p4_id");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "warp_id", PS_DATA_S32, "Primary Key AUTO_INCREMENT", 0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item warp_id");
         psFree(md);
         return false;
@@ -13806,5 +13806,5 @@
     }
 
-    bool status = psDBCreateTable(dbh, P4RUN_TABLE_NAME, md);
+    bool status = psDBCreateTable(dbh, WARPRUN_TABLE_NAME, md);
 
     psFree(md);
@@ -13813,14 +13813,14 @@
 }
 
-bool p4RunDropTable(psDB *dbh)
-{
-    return psDBDropTable(dbh, P4RUN_TABLE_NAME);
-}
-
-bool p4RunInsert(psDB * dbh, psS32 p4_id, const char *mode, const char *state, const char *workdir, const char *dvodb, psTime* registered)
+bool warpRunDropTable(psDB *dbh)
+{
+    return psDBDropTable(dbh, WARPRUN_TABLE_NAME);
+}
+
+bool warpRunInsert(psDB * dbh, psS32 warp_id, const char *mode, const char *state, const char *workdir, const char *dvodb, psTime* registered)
 {
     psMetadata *md = psMetadataAlloc();
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p4_id", PS_DATA_S32, NULL, p4_id)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p4_id");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "warp_id", PS_DATA_S32, NULL, warp_id)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item warp_id");
         psFree(md);
         return false;
@@ -13852,5 +13852,5 @@
     }
 
-    bool status = psDBInsertOneRow(dbh, P4RUN_TABLE_NAME, md);
+    bool status = psDBInsertOneRow(dbh, WARPRUN_TABLE_NAME, md);
     psFree(md);
 
@@ -13858,11 +13858,11 @@
 }
 
-long long p4RunDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
+long long warpRunDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
 {
     long long       deleted = 0;
 
-    long long count = psDBDeleteRows(dbh, P4RUN_TABLE_NAME, where, limit);
+    long long count = psDBDeleteRows(dbh, WARPRUN_TABLE_NAME, where, limit);
     if (count < 0) {
-        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p4Run");
+        psError(PS_ERR_UNKNOWN, true, "failed to delete row from warpRun");
         return count;
 
@@ -13872,13 +13872,13 @@
     return deleted;
 }
-bool p4RunInsertObject(psDB *dbh, p4RunRow *object)
-{
-    return p4RunInsert(dbh, object->p4_id, object->mode, object->state, object->workdir, object->dvodb, object->registered);
-}
-
-bool p4RunInsertObjects(psDB *dbh, psArray *objects)
+bool warpRunInsertObject(psDB *dbh, warpRunRow *object)
+{
+    return warpRunInsert(dbh, object->warp_id, object->mode, object->state, object->workdir, object->dvodb, object->registered);
+}
+
+bool warpRunInsertObjects(psDB *dbh, psArray *objects)
 {
     for (long i = 0; i < psArrayLength(objects); i++) {
-        if (!p4RunInsertObject(dbh, objects->data[i])) {
+        if (!warpRunInsertObject(dbh, objects->data[i])) {
             return false;
         }
@@ -13888,11 +13888,11 @@
 }
 
-bool p4RunInsertFits(psDB *dbh, const psFits *fits)
+bool warpRunInsertFits(psDB *dbh, const psFits *fits)
 {
     psArray         *rowSet;
 
-    // move to (the first?) extension named  P4RUN_TABLE_NAME
-    if (!psFitsMoveExtName(fits, P4RUN_TABLE_NAME)) {
-        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", P4RUN_TABLE_NAME);
+    // move to (the first?) extension named  WARPRUN_TABLE_NAME
+    if (!psFitsMoveExtName(fits, WARPRUN_TABLE_NAME)) {
+        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", WARPRUN_TABLE_NAME);
         return false;
     }
@@ -13912,5 +13912,5 @@
     }
 
-    if (!psDBInsertRows(dbh, P4RUN_TABLE_NAME, rowSet)) {
+    if (!psDBInsertRows(dbh, WARPRUN_TABLE_NAME, rowSet)) {
         psError(PS_ERR_UNKNOWN, false, "databse insert failed");
         psFree(rowSet);
@@ -13923,9 +13923,9 @@
 }
 
-bool p4RunSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
+bool warpRunSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
 {
     psArray         *rowSet;
 
-    rowSet = psDBSelectRows(dbh, P4RUN_TABLE_NAME, where, limit);
+    rowSet = psDBSelectRows(dbh, WARPRUN_TABLE_NAME, where, limit);
     if (!rowSet) {
         return false;
@@ -13933,5 +13933,5 @@
 
     // output to fits
-    if (!psFitsWriteTable(fits, NULL, rowSet, P4RUN_TABLE_NAME)) {
+    if (!psFitsWriteTable(fits, NULL, rowSet, WARPRUN_TABLE_NAME)) {
         psError(PS_ERR_UNKNOWN, false, "FITS table write failed");
         psFree(rowSet);
@@ -13944,9 +13944,9 @@
 }
 
-psMetadata *p4RunMetadataFromObject(const p4RunRow *object)
+psMetadata *warpRunMetadataFromObject(const warpRunRow *object)
 {
     psMetadata *md = psMetadataAlloc();
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p4_id", PS_DATA_S32, NULL, object->p4_id)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p4_id");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "warp_id", PS_DATA_S32, NULL, object->warp_id)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item warp_id");
         psFree(md);
         return false;
@@ -13982,11 +13982,11 @@
 }
 
-p4RunRow *p4RunObjectFromMetadata(psMetadata *md)
+warpRunRow *warpRunObjectFromMetadata(psMetadata *md)
 {
 
 bool status = false;
-    psS32 p4_id = psMetadataLookupS32(&status, md, "p4_id");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item p4_id");
+    psS32 warp_id = psMetadataLookupS32(&status, md, "warp_id");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item warp_id");
         return false;
     }
@@ -14017,7 +14017,7 @@
     }
 
-    return p4RunRowAlloc(p4_id, mode, state, workdir, dvodb, registered);
-}
-psArray *p4RunSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
+    return warpRunRowAlloc(warp_id, mode, state, workdir, dvodb, registered);
+}
+psArray *warpRunSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
 {
     psArray         *rowSet;
@@ -14025,5 +14025,5 @@
     psU64           i;
 
-    rowSet = psDBSelectRows(dbh, P4RUN_TABLE_NAME, where, limit);
+    rowSet = psDBSelectRows(dbh, WARPRUN_TABLE_NAME, where, limit);
     if (!rowSet) {
         return NULL;
@@ -14035,5 +14035,5 @@
 
     for (i = 0; i < rowSet->n; i++) {
-        p4RunRow *object = p4RunObjectFromMetadata(rowSet->data[i]);
+        warpRunRow *object = warpRunObjectFromMetadata(rowSet->data[i]);
         psArrayAdd(returnSet, 0, object);
         psFree(object);
@@ -14044,11 +14044,11 @@
     return returnSet;
 }
-bool p4RunDeleteObject(psDB *dbh, const p4RunRow *object)
-{
-    psMetadata *where = p4RunMetadataFromObject(object);
-    long long count = psDBDeleteRows(dbh, P4RUN_TABLE_NAME, where, 0);
+bool warpRunDeleteObject(psDB *dbh, const warpRunRow *object)
+{
+    psMetadata *where = warpRunMetadataFromObject(object);
+    long long count = psDBDeleteRows(dbh, WARPRUN_TABLE_NAME, where, 0);
     psFree(where);
     if (count < 0) {
-        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p4Run");
+        psError(PS_ERR_UNKNOWN, true, "failed to delete row from warpRun");
         return false;
     }
@@ -14056,21 +14056,21 @@
         // XXX should this be a psAbort() instead?  It is possible that
         // having an object match multiple rows was by design.
-        psError(PS_ERR_UNKNOWN, true, "p4RunRow object matched more then one row.  Check your database schema");
-        return false;
-    }
-
-    return true;
-}
-long long p4RunDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
+        psError(PS_ERR_UNKNOWN, true, "warpRunRow object matched more then one row.  Check your database schema");
+        return false;
+    }
+
+    return true;
+}
+long long warpRunDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
 {
     long long       deleted = 0;
 
     for (long long i = 0; i < objects->n; i++) {
-        p4RunRow *object = objects->data[i];
-        psMetadata *where = p4RunMetadataFromObject(object);
-        long long count = psDBDeleteRows(dbh, P4RUN_TABLE_NAME, where, limit);
+        warpRunRow *object = objects->data[i];
+        psMetadata *where = warpRunMetadataFromObject(object);
+        long long count = psDBDeleteRows(dbh, WARPRUN_TABLE_NAME, where, limit);
         psFree(where);
         if (count < 0) {
-            psError(PS_ERR_UNKNOWN, true, "failed to delete row from p4Run");
+            psError(PS_ERR_UNKNOWN, true, "failed to delete row from warpRun");
             return count;
         }
@@ -14081,5 +14081,5 @@
     return deleted;
 }
-bool p4RunPrintObjects(FILE *stream, psArray *objects, bool mdcf)
+bool warpRunPrintObjects(FILE *stream, psArray *objects, bool mdcf)
 {
     PS_ASSERT_PTR_NON_NULL(objects, false);
@@ -14087,9 +14087,9 @@
     psMetadata *output = psMetadataAlloc();
     for (long i = 0; i < psArrayLength(objects); i++) {
-        psMetadata *md = p4RunMetadataFromObject(objects->data[i]);
+        psMetadata *md = warpRunMetadataFromObject(objects->data[i]);
         if (!psMetadataAddMetadata(
             output,
             PS_LIST_TAIL,
-            P4RUN_TABLE_NAME,
+            WARPRUN_TABLE_NAME,
             PS_META_DUPLICATE_OK,
             NULL,
@@ -14112,9 +14112,9 @@
     return true;
 }
-bool p4RunPrintObject(FILE *stream, p4RunRow *object, bool mdcf)
+bool warpRunPrintObject(FILE *stream, warpRunRow *object, bool mdcf)
 {
     PS_ASSERT_PTR_NON_NULL(object, false);
 
-    psMetadata *md = p4RunMetadataFromObject(object);
+    psMetadata *md = warpRunMetadataFromObject(object);
 
     if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
@@ -14127,16 +14127,16 @@
     return true;
 }
-static void p4InputExpRowFree(p4InputExpRow *object);
-
-p4InputExpRow *p4InputExpRowAlloc(psS32 p4_id, const char *exp_tag, psS32 p3_version, bool magiced)
-{
-    p4InputExpRow   *_object;
-
-    _object = psAlloc(sizeof(p4InputExpRow));
-    psMemSetDeallocator(_object, (psFreeFunc)p4InputExpRowFree);
-
-    _object->p4_id = p4_id;
+static void warpInputExpRowFree(warpInputExpRow *object);
+
+warpInputExpRow *warpInputExpRowAlloc(psS32 warp_id, const char *exp_tag, psS32 cam_version, bool magiced)
+{
+    warpInputExpRow *_object;
+
+    _object = psAlloc(sizeof(warpInputExpRow));
+    psMemSetDeallocator(_object, (psFreeFunc)warpInputExpRowFree);
+
+    _object->warp_id = warp_id;
     _object->exp_tag = psStringCopy(exp_tag);
-    _object->p3_version = p3_version;
+    _object->cam_version = cam_version;
     _object->magiced = magiced;
 
@@ -14144,14 +14144,14 @@
 }
 
-static void p4InputExpRowFree(p4InputExpRow *object)
+static void warpInputExpRowFree(warpInputExpRow *object)
 {
     psFree(object->exp_tag);
 }
 
-bool p4InputExpCreateTable(psDB *dbh)
+bool warpInputExpCreateTable(psDB *dbh)
 {
     psMetadata *md = psMetadataAlloc();
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p4_id", PS_DATA_S32, "Primary Key", 0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p4_id");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "warp_id", PS_DATA_S32, "Primary Key", 0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item warp_id");
         psFree(md);
         return false;
@@ -14162,6 +14162,6 @@
         return false;
     }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p3_version", PS_DATA_S32, "Key", 0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p3_version");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "cam_version", PS_DATA_S32, "Key", 0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item cam_version");
         psFree(md);
         return false;
@@ -14173,5 +14173,5 @@
     }
 
-    bool status = psDBCreateTable(dbh, P4INPUTEXP_TABLE_NAME, md);
+    bool status = psDBCreateTable(dbh, WARPINPUTEXP_TABLE_NAME, md);
 
     psFree(md);
@@ -14180,14 +14180,14 @@
 }
 
-bool p4InputExpDropTable(psDB *dbh)
-{
-    return psDBDropTable(dbh, P4INPUTEXP_TABLE_NAME);
-}
-
-bool p4InputExpInsert(psDB * dbh, psS32 p4_id, const char *exp_tag, psS32 p3_version, bool magiced)
+bool warpInputExpDropTable(psDB *dbh)
+{
+    return psDBDropTable(dbh, WARPINPUTEXP_TABLE_NAME);
+}
+
+bool warpInputExpInsert(psDB * dbh, psS32 warp_id, const char *exp_tag, psS32 cam_version, bool magiced)
 {
     psMetadata *md = psMetadataAlloc();
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p4_id", PS_DATA_S32, NULL, p4_id)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p4_id");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "warp_id", PS_DATA_S32, NULL, warp_id)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item warp_id");
         psFree(md);
         return false;
@@ -14198,6 +14198,6 @@
         return false;
     }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p3_version", PS_DATA_S32, NULL, p3_version)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p3_version");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "cam_version", PS_DATA_S32, NULL, cam_version)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item cam_version");
         psFree(md);
         return false;
@@ -14209,5 +14209,5 @@
     }
 
-    bool status = psDBInsertOneRow(dbh, P4INPUTEXP_TABLE_NAME, md);
+    bool status = psDBInsertOneRow(dbh, WARPINPUTEXP_TABLE_NAME, md);
     psFree(md);
 
@@ -14215,11 +14215,11 @@
 }
 
-long long p4InputExpDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
+long long warpInputExpDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
 {
     long long       deleted = 0;
 
-    long long count = psDBDeleteRows(dbh, P4INPUTEXP_TABLE_NAME, where, limit);
+    long long count = psDBDeleteRows(dbh, WARPINPUTEXP_TABLE_NAME, where, limit);
     if (count < 0) {
-        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p4InputExp");
+        psError(PS_ERR_UNKNOWN, true, "failed to delete row from warpInputExp");
         return count;
 
@@ -14229,13 +14229,13 @@
     return deleted;
 }
-bool p4InputExpInsertObject(psDB *dbh, p4InputExpRow *object)
-{
-    return p4InputExpInsert(dbh, object->p4_id, object->exp_tag, object->p3_version, object->magiced);
-}
-
-bool p4InputExpInsertObjects(psDB *dbh, psArray *objects)
+bool warpInputExpInsertObject(psDB *dbh, warpInputExpRow *object)
+{
+    return warpInputExpInsert(dbh, object->warp_id, object->exp_tag, object->cam_version, object->magiced);
+}
+
+bool warpInputExpInsertObjects(psDB *dbh, psArray *objects)
 {
     for (long i = 0; i < psArrayLength(objects); i++) {
-        if (!p4InputExpInsertObject(dbh, objects->data[i])) {
+        if (!warpInputExpInsertObject(dbh, objects->data[i])) {
             return false;
         }
@@ -14245,11 +14245,11 @@
 }
 
-bool p4InputExpInsertFits(psDB *dbh, const psFits *fits)
+bool warpInputExpInsertFits(psDB *dbh, const psFits *fits)
 {
     psArray         *rowSet;
 
-    // move to (the first?) extension named  P4INPUTEXP_TABLE_NAME
-    if (!psFitsMoveExtName(fits, P4INPUTEXP_TABLE_NAME)) {
-        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", P4INPUTEXP_TABLE_NAME);
+    // move to (the first?) extension named  WARPINPUTEXP_TABLE_NAME
+    if (!psFitsMoveExtName(fits, WARPINPUTEXP_TABLE_NAME)) {
+        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", WARPINPUTEXP_TABLE_NAME);
         return false;
     }
@@ -14269,5 +14269,5 @@
     }
 
-    if (!psDBInsertRows(dbh, P4INPUTEXP_TABLE_NAME, rowSet)) {
+    if (!psDBInsertRows(dbh, WARPINPUTEXP_TABLE_NAME, rowSet)) {
         psError(PS_ERR_UNKNOWN, false, "databse insert failed");
         psFree(rowSet);
@@ -14280,9 +14280,9 @@
 }
 
-bool p4InputExpSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
+bool warpInputExpSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
 {
     psArray         *rowSet;
 
-    rowSet = psDBSelectRows(dbh, P4INPUTEXP_TABLE_NAME, where, limit);
+    rowSet = psDBSelectRows(dbh, WARPINPUTEXP_TABLE_NAME, where, limit);
     if (!rowSet) {
         return false;
@@ -14290,5 +14290,5 @@
 
     // output to fits
-    if (!psFitsWriteTable(fits, NULL, rowSet, P4INPUTEXP_TABLE_NAME)) {
+    if (!psFitsWriteTable(fits, NULL, rowSet, WARPINPUTEXP_TABLE_NAME)) {
         psError(PS_ERR_UNKNOWN, false, "FITS table write failed");
         psFree(rowSet);
@@ -14301,9 +14301,9 @@
 }
 
-psMetadata *p4InputExpMetadataFromObject(const p4InputExpRow *object)
+psMetadata *warpInputExpMetadataFromObject(const warpInputExpRow *object)
 {
     psMetadata *md = psMetadataAlloc();
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p4_id", PS_DATA_S32, NULL, object->p4_id)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p4_id");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "warp_id", PS_DATA_S32, NULL, object->warp_id)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item warp_id");
         psFree(md);
         return false;
@@ -14314,6 +14314,6 @@
         return false;
     }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p3_version", PS_DATA_S32, NULL, object->p3_version)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p3_version");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "cam_version", PS_DATA_S32, NULL, object->cam_version)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item cam_version");
         psFree(md);
         return false;
@@ -14329,11 +14329,11 @@
 }
 
-p4InputExpRow *p4InputExpObjectFromMetadata(psMetadata *md)
+warpInputExpRow *warpInputExpObjectFromMetadata(psMetadata *md)
 {
 
 bool status = false;
-    psS32 p4_id = psMetadataLookupS32(&status, md, "p4_id");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item p4_id");
+    psS32 warp_id = psMetadataLookupS32(&status, md, "warp_id");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item warp_id");
         return false;
     }
@@ -14343,7 +14343,7 @@
         return false;
     }
-    psS32 p3_version = psMetadataLookupS32(&status, md, "p3_version");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item p3_version");
+    psS32 cam_version = psMetadataLookupS32(&status, md, "cam_version");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item cam_version");
         return false;
     }
@@ -14354,7 +14354,7 @@
     }
 
-    return p4InputExpRowAlloc(p4_id, exp_tag, p3_version, magiced);
-}
-psArray *p4InputExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
+    return warpInputExpRowAlloc(warp_id, exp_tag, cam_version, magiced);
+}
+psArray *warpInputExpSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
 {
     psArray         *rowSet;
@@ -14362,5 +14362,5 @@
     psU64           i;
 
-    rowSet = psDBSelectRows(dbh, P4INPUTEXP_TABLE_NAME, where, limit);
+    rowSet = psDBSelectRows(dbh, WARPINPUTEXP_TABLE_NAME, where, limit);
     if (!rowSet) {
         return NULL;
@@ -14372,5 +14372,5 @@
 
     for (i = 0; i < rowSet->n; i++) {
-        p4InputExpRow *object = p4InputExpObjectFromMetadata(rowSet->data[i]);
+        warpInputExpRow *object = warpInputExpObjectFromMetadata(rowSet->data[i]);
         psArrayAdd(returnSet, 0, object);
         psFree(object);
@@ -14381,11 +14381,11 @@
     return returnSet;
 }
-bool p4InputExpDeleteObject(psDB *dbh, const p4InputExpRow *object)
-{
-    psMetadata *where = p4InputExpMetadataFromObject(object);
-    long long count = psDBDeleteRows(dbh, P4INPUTEXP_TABLE_NAME, where, 0);
+bool warpInputExpDeleteObject(psDB *dbh, const warpInputExpRow *object)
+{
+    psMetadata *where = warpInputExpMetadataFromObject(object);
+    long long count = psDBDeleteRows(dbh, WARPINPUTEXP_TABLE_NAME, where, 0);
     psFree(where);
     if (count < 0) {
-        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p4InputExp");
+        psError(PS_ERR_UNKNOWN, true, "failed to delete row from warpInputExp");
         return false;
     }
@@ -14393,21 +14393,21 @@
         // XXX should this be a psAbort() instead?  It is possible that
         // having an object match multiple rows was by design.
-        psError(PS_ERR_UNKNOWN, true, "p4InputExpRow object matched more then one row.  Check your database schema");
-        return false;
-    }
-
-    return true;
-}
-long long p4InputExpDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
+        psError(PS_ERR_UNKNOWN, true, "warpInputExpRow object matched more then one row.  Check your database schema");
+        return false;
+    }
+
+    return true;
+}
+long long warpInputExpDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
 {
     long long       deleted = 0;
 
     for (long long i = 0; i < objects->n; i++) {
-        p4InputExpRow *object = objects->data[i];
-        psMetadata *where = p4InputExpMetadataFromObject(object);
-        long long count = psDBDeleteRows(dbh, P4INPUTEXP_TABLE_NAME, where, limit);
+        warpInputExpRow *object = objects->data[i];
+        psMetadata *where = warpInputExpMetadataFromObject(object);
+        long long count = psDBDeleteRows(dbh, WARPINPUTEXP_TABLE_NAME, where, limit);
         psFree(where);
         if (count < 0) {
-            psError(PS_ERR_UNKNOWN, true, "failed to delete row from p4InputExp");
+            psError(PS_ERR_UNKNOWN, true, "failed to delete row from warpInputExp");
             return count;
         }
@@ -14418,5 +14418,5 @@
     return deleted;
 }
-bool p4InputExpPrintObjects(FILE *stream, psArray *objects, bool mdcf)
+bool warpInputExpPrintObjects(FILE *stream, psArray *objects, bool mdcf)
 {
     PS_ASSERT_PTR_NON_NULL(objects, false);
@@ -14424,9 +14424,9 @@
     psMetadata *output = psMetadataAlloc();
     for (long i = 0; i < psArrayLength(objects); i++) {
-        psMetadata *md = p4InputExpMetadataFromObject(objects->data[i]);
+        psMetadata *md = warpInputExpMetadataFromObject(objects->data[i]);
         if (!psMetadataAddMetadata(
             output,
             PS_LIST_TAIL,
-            P4INPUTEXP_TABLE_NAME,
+            WARPINPUTEXP_TABLE_NAME,
             PS_META_DUPLICATE_OK,
             NULL,
@@ -14449,9 +14449,9 @@
     return true;
 }
-bool p4InputExpPrintObject(FILE *stream, p4InputExpRow *object, bool mdcf)
+bool warpInputExpPrintObject(FILE *stream, warpInputExpRow *object, bool mdcf)
 {
     PS_ASSERT_PTR_NON_NULL(object, false);
 
-    psMetadata *md = p4InputExpMetadataFromObject(object);
+    psMetadata *md = warpInputExpMetadataFromObject(object);
 
     if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
@@ -14464,18 +14464,18 @@
     return true;
 }
-static void p4SkyCellMapRowFree(p4SkyCellMapRow *object);
-
-p4SkyCellMapRow *p4SkyCellMapRowAlloc(psS32 p4_id, const char *skycell_id, const char *tess_id, const char *exp_tag, psS32 p3_version, const char *class_id)
-{
-    p4SkyCellMapRow *_object;
-
-    _object = psAlloc(sizeof(p4SkyCellMapRow));
-    psMemSetDeallocator(_object, (psFreeFunc)p4SkyCellMapRowFree);
-
-    _object->p4_id = p4_id;
+static void warpSkyCellMapRowFree(warpSkyCellMapRow *object);
+
+warpSkyCellMapRow *warpSkyCellMapRowAlloc(psS32 warp_id, const char *skycell_id, const char *tess_id, const char *exp_tag, psS32 cam_version, const char *class_id)
+{
+    warpSkyCellMapRow *_object;
+
+    _object = psAlloc(sizeof(warpSkyCellMapRow));
+    psMemSetDeallocator(_object, (psFreeFunc)warpSkyCellMapRowFree);
+
+    _object->warp_id = warp_id;
     _object->skycell_id = psStringCopy(skycell_id);
     _object->tess_id = psStringCopy(tess_id);
     _object->exp_tag = psStringCopy(exp_tag);
-    _object->p3_version = p3_version;
+    _object->cam_version = cam_version;
     _object->class_id = psStringCopy(class_id);
 
@@ -14483,5 +14483,5 @@
 }
 
-static void p4SkyCellMapRowFree(p4SkyCellMapRow *object)
+static void warpSkyCellMapRowFree(warpSkyCellMapRow *object)
 {
     psFree(object->skycell_id);
@@ -14491,9 +14491,9 @@
 }
 
-bool p4SkyCellMapCreateTable(psDB *dbh)
+bool warpSkyCellMapCreateTable(psDB *dbh)
 {
     psMetadata *md = psMetadataAlloc();
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p4_id", PS_DATA_S32, "Primary Key", 0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p4_id");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "warp_id", PS_DATA_S32, "Primary Key", 0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item warp_id");
         psFree(md);
         return false;
@@ -14514,6 +14514,6 @@
         return false;
     }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p3_version", PS_DATA_S32, "Primary Key", 0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p3_version");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "cam_version", PS_DATA_S32, "Primary Key", 0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item cam_version");
         psFree(md);
         return false;
@@ -14525,5 +14525,5 @@
     }
 
-    bool status = psDBCreateTable(dbh, P4SKYCELLMAP_TABLE_NAME, md);
+    bool status = psDBCreateTable(dbh, WARPSKYCELLMAP_TABLE_NAME, md);
 
     psFree(md);
@@ -14532,14 +14532,14 @@
 }
 
-bool p4SkyCellMapDropTable(psDB *dbh)
-{
-    return psDBDropTable(dbh, P4SKYCELLMAP_TABLE_NAME);
-}
-
-bool p4SkyCellMapInsert(psDB * dbh, psS32 p4_id, const char *skycell_id, const char *tess_id, const char *exp_tag, psS32 p3_version, const char *class_id)
+bool warpSkyCellMapDropTable(psDB *dbh)
+{
+    return psDBDropTable(dbh, WARPSKYCELLMAP_TABLE_NAME);
+}
+
+bool warpSkyCellMapInsert(psDB * dbh, psS32 warp_id, const char *skycell_id, const char *tess_id, const char *exp_tag, psS32 cam_version, const char *class_id)
 {
     psMetadata *md = psMetadataAlloc();
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p4_id", PS_DATA_S32, NULL, p4_id)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p4_id");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "warp_id", PS_DATA_S32, NULL, warp_id)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item warp_id");
         psFree(md);
         return false;
@@ -14560,6 +14560,6 @@
         return false;
     }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p3_version", PS_DATA_S32, NULL, p3_version)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p3_version");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "cam_version", PS_DATA_S32, NULL, cam_version)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item cam_version");
         psFree(md);
         return false;
@@ -14571,5 +14571,5 @@
     }
 
-    bool status = psDBInsertOneRow(dbh, P4SKYCELLMAP_TABLE_NAME, md);
+    bool status = psDBInsertOneRow(dbh, WARPSKYCELLMAP_TABLE_NAME, md);
     psFree(md);
 
@@ -14577,11 +14577,11 @@
 }
 
-long long p4SkyCellMapDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
+long long warpSkyCellMapDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
 {
     long long       deleted = 0;
 
-    long long count = psDBDeleteRows(dbh, P4SKYCELLMAP_TABLE_NAME, where, limit);
+    long long count = psDBDeleteRows(dbh, WARPSKYCELLMAP_TABLE_NAME, where, limit);
     if (count < 0) {
-        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p4SkyCellMap");
+        psError(PS_ERR_UNKNOWN, true, "failed to delete row from warpSkyCellMap");
         return count;
 
@@ -14591,13 +14591,13 @@
     return deleted;
 }
-bool p4SkyCellMapInsertObject(psDB *dbh, p4SkyCellMapRow *object)
-{
-    return p4SkyCellMapInsert(dbh, object->p4_id, object->skycell_id, object->tess_id, object->exp_tag, object->p3_version, object->class_id);
-}
-
-bool p4SkyCellMapInsertObjects(psDB *dbh, psArray *objects)
+bool warpSkyCellMapInsertObject(psDB *dbh, warpSkyCellMapRow *object)
+{
+    return warpSkyCellMapInsert(dbh, object->warp_id, object->skycell_id, object->tess_id, object->exp_tag, object->cam_version, object->class_id);
+}
+
+bool warpSkyCellMapInsertObjects(psDB *dbh, psArray *objects)
 {
     for (long i = 0; i < psArrayLength(objects); i++) {
-        if (!p4SkyCellMapInsertObject(dbh, objects->data[i])) {
+        if (!warpSkyCellMapInsertObject(dbh, objects->data[i])) {
             return false;
         }
@@ -14607,11 +14607,11 @@
 }
 
-bool p4SkyCellMapInsertFits(psDB *dbh, const psFits *fits)
+bool warpSkyCellMapInsertFits(psDB *dbh, const psFits *fits)
 {
     psArray         *rowSet;
 
-    // move to (the first?) extension named  P4SKYCELLMAP_TABLE_NAME
-    if (!psFitsMoveExtName(fits, P4SKYCELLMAP_TABLE_NAME)) {
-        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", P4SKYCELLMAP_TABLE_NAME);
+    // move to (the first?) extension named  WARPSKYCELLMAP_TABLE_NAME
+    if (!psFitsMoveExtName(fits, WARPSKYCELLMAP_TABLE_NAME)) {
+        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", WARPSKYCELLMAP_TABLE_NAME);
         return false;
     }
@@ -14631,5 +14631,5 @@
     }
 
-    if (!psDBInsertRows(dbh, P4SKYCELLMAP_TABLE_NAME, rowSet)) {
+    if (!psDBInsertRows(dbh, WARPSKYCELLMAP_TABLE_NAME, rowSet)) {
         psError(PS_ERR_UNKNOWN, false, "databse insert failed");
         psFree(rowSet);
@@ -14642,9 +14642,9 @@
 }
 
-bool p4SkyCellMapSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
+bool warpSkyCellMapSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
 {
     psArray         *rowSet;
 
-    rowSet = psDBSelectRows(dbh, P4SKYCELLMAP_TABLE_NAME, where, limit);
+    rowSet = psDBSelectRows(dbh, WARPSKYCELLMAP_TABLE_NAME, where, limit);
     if (!rowSet) {
         return false;
@@ -14652,5 +14652,5 @@
 
     // output to fits
-    if (!psFitsWriteTable(fits, NULL, rowSet, P4SKYCELLMAP_TABLE_NAME)) {
+    if (!psFitsWriteTable(fits, NULL, rowSet, WARPSKYCELLMAP_TABLE_NAME)) {
         psError(PS_ERR_UNKNOWN, false, "FITS table write failed");
         psFree(rowSet);
@@ -14663,9 +14663,9 @@
 }
 
-psMetadata *p4SkyCellMapMetadataFromObject(const p4SkyCellMapRow *object)
+psMetadata *warpSkyCellMapMetadataFromObject(const warpSkyCellMapRow *object)
 {
     psMetadata *md = psMetadataAlloc();
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p4_id", PS_DATA_S32, NULL, object->p4_id)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p4_id");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "warp_id", PS_DATA_S32, NULL, object->warp_id)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item warp_id");
         psFree(md);
         return false;
@@ -14686,6 +14686,6 @@
         return false;
     }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p3_version", PS_DATA_S32, NULL, object->p3_version)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p3_version");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "cam_version", PS_DATA_S32, NULL, object->cam_version)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item cam_version");
         psFree(md);
         return false;
@@ -14701,11 +14701,11 @@
 }
 
-p4SkyCellMapRow *p4SkyCellMapObjectFromMetadata(psMetadata *md)
+warpSkyCellMapRow *warpSkyCellMapObjectFromMetadata(psMetadata *md)
 {
 
 bool status = false;
-    psS32 p4_id = psMetadataLookupS32(&status, md, "p4_id");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item p4_id");
+    psS32 warp_id = psMetadataLookupS32(&status, md, "warp_id");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item warp_id");
         return false;
     }
@@ -14725,7 +14725,7 @@
         return false;
     }
-    psS32 p3_version = psMetadataLookupS32(&status, md, "p3_version");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item p3_version");
+    psS32 cam_version = psMetadataLookupS32(&status, md, "cam_version");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item cam_version");
         return false;
     }
@@ -14736,7 +14736,7 @@
     }
 
-    return p4SkyCellMapRowAlloc(p4_id, skycell_id, tess_id, exp_tag, p3_version, class_id);
-}
-psArray *p4SkyCellMapSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
+    return warpSkyCellMapRowAlloc(warp_id, skycell_id, tess_id, exp_tag, cam_version, class_id);
+}
+psArray *warpSkyCellMapSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
 {
     psArray         *rowSet;
@@ -14744,5 +14744,5 @@
     psU64           i;
 
-    rowSet = psDBSelectRows(dbh, P4SKYCELLMAP_TABLE_NAME, where, limit);
+    rowSet = psDBSelectRows(dbh, WARPSKYCELLMAP_TABLE_NAME, where, limit);
     if (!rowSet) {
         return NULL;
@@ -14754,5 +14754,5 @@
 
     for (i = 0; i < rowSet->n; i++) {
-        p4SkyCellMapRow *object = p4SkyCellMapObjectFromMetadata(rowSet->data[i]);
+        warpSkyCellMapRow *object = warpSkyCellMapObjectFromMetadata(rowSet->data[i]);
         psArrayAdd(returnSet, 0, object);
         psFree(object);
@@ -14763,11 +14763,11 @@
     return returnSet;
 }
-bool p4SkyCellMapDeleteObject(psDB *dbh, const p4SkyCellMapRow *object)
-{
-    psMetadata *where = p4SkyCellMapMetadataFromObject(object);
-    long long count = psDBDeleteRows(dbh, P4SKYCELLMAP_TABLE_NAME, where, 0);
+bool warpSkyCellMapDeleteObject(psDB *dbh, const warpSkyCellMapRow *object)
+{
+    psMetadata *where = warpSkyCellMapMetadataFromObject(object);
+    long long count = psDBDeleteRows(dbh, WARPSKYCELLMAP_TABLE_NAME, where, 0);
     psFree(where);
     if (count < 0) {
-        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p4SkyCellMap");
+        psError(PS_ERR_UNKNOWN, true, "failed to delete row from warpSkyCellMap");
         return false;
     }
@@ -14775,21 +14775,21 @@
         // XXX should this be a psAbort() instead?  It is possible that
         // having an object match multiple rows was by design.
-        psError(PS_ERR_UNKNOWN, true, "p4SkyCellMapRow object matched more then one row.  Check your database schema");
-        return false;
-    }
-
-    return true;
-}
-long long p4SkyCellMapDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
+        psError(PS_ERR_UNKNOWN, true, "warpSkyCellMapRow object matched more then one row.  Check your database schema");
+        return false;
+    }
+
+    return true;
+}
+long long warpSkyCellMapDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
 {
     long long       deleted = 0;
 
     for (long long i = 0; i < objects->n; i++) {
-        p4SkyCellMapRow *object = objects->data[i];
-        psMetadata *where = p4SkyCellMapMetadataFromObject(object);
-        long long count = psDBDeleteRows(dbh, P4SKYCELLMAP_TABLE_NAME, where, limit);
+        warpSkyCellMapRow *object = objects->data[i];
+        psMetadata *where = warpSkyCellMapMetadataFromObject(object);
+        long long count = psDBDeleteRows(dbh, WARPSKYCELLMAP_TABLE_NAME, where, limit);
         psFree(where);
         if (count < 0) {
-            psError(PS_ERR_UNKNOWN, true, "failed to delete row from p4SkyCellMap");
+            psError(PS_ERR_UNKNOWN, true, "failed to delete row from warpSkyCellMap");
             return count;
         }
@@ -14800,5 +14800,5 @@
     return deleted;
 }
-bool p4SkyCellMapPrintObjects(FILE *stream, psArray *objects, bool mdcf)
+bool warpSkyCellMapPrintObjects(FILE *stream, psArray *objects, bool mdcf)
 {
     PS_ASSERT_PTR_NON_NULL(objects, false);
@@ -14806,9 +14806,9 @@
     psMetadata *output = psMetadataAlloc();
     for (long i = 0; i < psArrayLength(objects); i++) {
-        psMetadata *md = p4SkyCellMapMetadataFromObject(objects->data[i]);
+        psMetadata *md = warpSkyCellMapMetadataFromObject(objects->data[i]);
         if (!psMetadataAddMetadata(
             output,
             PS_LIST_TAIL,
-            P4SKYCELLMAP_TABLE_NAME,
+            WARPSKYCELLMAP_TABLE_NAME,
             PS_META_DUPLICATE_OK,
             NULL,
@@ -14831,9 +14831,9 @@
     return true;
 }
-bool p4SkyCellMapPrintObject(FILE *stream, p4SkyCellMapRow *object, bool mdcf)
+bool warpSkyCellMapPrintObject(FILE *stream, warpSkyCellMapRow *object, bool mdcf)
 {
     PS_ASSERT_PTR_NON_NULL(object, false);
 
-    psMetadata *md = p4SkyCellMapMetadataFromObject(object);
+    psMetadata *md = warpSkyCellMapMetadataFromObject(object);
 
     if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
@@ -14846,14 +14846,14 @@
     return true;
 }
-static void p4SkyfileRowFree(p4SkyfileRow *object);
-
-p4SkyfileRow *p4SkyfileRowAlloc(psS32 p4_id, const char *skycell_id, const char *tess_id, const char *uri, psF64 bg, psF64 bg_mean_stdev)
-{
-    p4SkyfileRow    *_object;
-
-    _object = psAlloc(sizeof(p4SkyfileRow));
-    psMemSetDeallocator(_object, (psFreeFunc)p4SkyfileRowFree);
-
-    _object->p4_id = p4_id;
+static void warpSkyfileRowFree(warpSkyfileRow *object);
+
+warpSkyfileRow *warpSkyfileRowAlloc(psS32 warp_id, const char *skycell_id, const char *tess_id, const char *uri, psF64 bg, psF64 bg_mean_stdev)
+{
+    warpSkyfileRow  *_object;
+
+    _object = psAlloc(sizeof(warpSkyfileRow));
+    psMemSetDeallocator(_object, (psFreeFunc)warpSkyfileRowFree);
+
+    _object->warp_id = warp_id;
     _object->skycell_id = psStringCopy(skycell_id);
     _object->tess_id = psStringCopy(tess_id);
@@ -14865,5 +14865,5 @@
 }
 
-static void p4SkyfileRowFree(p4SkyfileRow *object)
+static void warpSkyfileRowFree(warpSkyfileRow *object)
 {
     psFree(object->skycell_id);
@@ -14872,9 +14872,9 @@
 }
 
-bool p4SkyfileCreateTable(psDB *dbh)
+bool warpSkyfileCreateTable(psDB *dbh)
 {
     psMetadata *md = psMetadataAlloc();
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p4_id", PS_DATA_S32, "Primary Key", 0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p4_id");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "warp_id", PS_DATA_S32, "Primary Key", 0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item warp_id");
         psFree(md);
         return false;
@@ -14906,5 +14906,5 @@
     }
 
-    bool status = psDBCreateTable(dbh, P4SKYFILE_TABLE_NAME, md);
+    bool status = psDBCreateTable(dbh, WARPSKYFILE_TABLE_NAME, md);
 
     psFree(md);
@@ -14913,14 +14913,14 @@
 }
 
-bool p4SkyfileDropTable(psDB *dbh)
-{
-    return psDBDropTable(dbh, P4SKYFILE_TABLE_NAME);
-}
-
-bool p4SkyfileInsert(psDB * dbh, psS32 p4_id, const char *skycell_id, const char *tess_id, const char *uri, psF64 bg, psF64 bg_mean_stdev)
+bool warpSkyfileDropTable(psDB *dbh)
+{
+    return psDBDropTable(dbh, WARPSKYFILE_TABLE_NAME);
+}
+
+bool warpSkyfileInsert(psDB * dbh, psS32 warp_id, const char *skycell_id, const char *tess_id, const char *uri, psF64 bg, psF64 bg_mean_stdev)
 {
     psMetadata *md = psMetadataAlloc();
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p4_id", PS_DATA_S32, NULL, p4_id)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p4_id");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "warp_id", PS_DATA_S32, NULL, warp_id)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item warp_id");
         psFree(md);
         return false;
@@ -14952,5 +14952,5 @@
     }
 
-    bool status = psDBInsertOneRow(dbh, P4SKYFILE_TABLE_NAME, md);
+    bool status = psDBInsertOneRow(dbh, WARPSKYFILE_TABLE_NAME, md);
     psFree(md);
 
@@ -14958,11 +14958,11 @@
 }
 
-long long p4SkyfileDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
+long long warpSkyfileDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
 {
     long long       deleted = 0;
 
-    long long count = psDBDeleteRows(dbh, P4SKYFILE_TABLE_NAME, where, limit);
+    long long count = psDBDeleteRows(dbh, WARPSKYFILE_TABLE_NAME, where, limit);
     if (count < 0) {
-        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p4Skyfile");
+        psError(PS_ERR_UNKNOWN, true, "failed to delete row from warpSkyfile");
         return count;
 
@@ -14972,13 +14972,13 @@
     return deleted;
 }
-bool p4SkyfileInsertObject(psDB *dbh, p4SkyfileRow *object)
-{
-    return p4SkyfileInsert(dbh, object->p4_id, object->skycell_id, object->tess_id, object->uri, object->bg, object->bg_mean_stdev);
-}
-
-bool p4SkyfileInsertObjects(psDB *dbh, psArray *objects)
+bool warpSkyfileInsertObject(psDB *dbh, warpSkyfileRow *object)
+{
+    return warpSkyfileInsert(dbh, object->warp_id, object->skycell_id, object->tess_id, object->uri, object->bg, object->bg_mean_stdev);
+}
+
+bool warpSkyfileInsertObjects(psDB *dbh, psArray *objects)
 {
     for (long i = 0; i < psArrayLength(objects); i++) {
-        if (!p4SkyfileInsertObject(dbh, objects->data[i])) {
+        if (!warpSkyfileInsertObject(dbh, objects->data[i])) {
             return false;
         }
@@ -14988,11 +14988,11 @@
 }
 
-bool p4SkyfileInsertFits(psDB *dbh, const psFits *fits)
+bool warpSkyfileInsertFits(psDB *dbh, const psFits *fits)
 {
     psArray         *rowSet;
 
-    // move to (the first?) extension named  P4SKYFILE_TABLE_NAME
-    if (!psFitsMoveExtName(fits, P4SKYFILE_TABLE_NAME)) {
-        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", P4SKYFILE_TABLE_NAME);
+    // move to (the first?) extension named  WARPSKYFILE_TABLE_NAME
+    if (!psFitsMoveExtName(fits, WARPSKYFILE_TABLE_NAME)) {
+        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", WARPSKYFILE_TABLE_NAME);
         return false;
     }
@@ -15012,5 +15012,5 @@
     }
 
-    if (!psDBInsertRows(dbh, P4SKYFILE_TABLE_NAME, rowSet)) {
+    if (!psDBInsertRows(dbh, WARPSKYFILE_TABLE_NAME, rowSet)) {
         psError(PS_ERR_UNKNOWN, false, "databse insert failed");
         psFree(rowSet);
@@ -15023,9 +15023,9 @@
 }
 
-bool p4SkyfileSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
+bool warpSkyfileSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
 {
     psArray         *rowSet;
 
-    rowSet = psDBSelectRows(dbh, P4SKYFILE_TABLE_NAME, where, limit);
+    rowSet = psDBSelectRows(dbh, WARPSKYFILE_TABLE_NAME, where, limit);
     if (!rowSet) {
         return false;
@@ -15033,5 +15033,5 @@
 
     // output to fits
-    if (!psFitsWriteTable(fits, NULL, rowSet, P4SKYFILE_TABLE_NAME)) {
+    if (!psFitsWriteTable(fits, NULL, rowSet, WARPSKYFILE_TABLE_NAME)) {
         psError(PS_ERR_UNKNOWN, false, "FITS table write failed");
         psFree(rowSet);
@@ -15044,9 +15044,9 @@
 }
 
-psMetadata *p4SkyfileMetadataFromObject(const p4SkyfileRow *object)
+psMetadata *warpSkyfileMetadataFromObject(const warpSkyfileRow *object)
 {
     psMetadata *md = psMetadataAlloc();
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p4_id", PS_DATA_S32, NULL, object->p4_id)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p4_id");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "warp_id", PS_DATA_S32, NULL, object->warp_id)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item warp_id");
         psFree(md);
         return false;
@@ -15082,11 +15082,11 @@
 }
 
-p4SkyfileRow *p4SkyfileObjectFromMetadata(psMetadata *md)
+warpSkyfileRow *warpSkyfileObjectFromMetadata(psMetadata *md)
 {
 
 bool status = false;
-    psS32 p4_id = psMetadataLookupS32(&status, md, "p4_id");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item p4_id");
+    psS32 warp_id = psMetadataLookupS32(&status, md, "warp_id");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item warp_id");
         return false;
     }
@@ -15117,7 +15117,7 @@
     }
 
-    return p4SkyfileRowAlloc(p4_id, skycell_id, tess_id, uri, bg, bg_mean_stdev);
-}
-psArray *p4SkyfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
+    return warpSkyfileRowAlloc(warp_id, skycell_id, tess_id, uri, bg, bg_mean_stdev);
+}
+psArray *warpSkyfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
 {
     psArray         *rowSet;
@@ -15125,5 +15125,5 @@
     psU64           i;
 
-    rowSet = psDBSelectRows(dbh, P4SKYFILE_TABLE_NAME, where, limit);
+    rowSet = psDBSelectRows(dbh, WARPSKYFILE_TABLE_NAME, where, limit);
     if (!rowSet) {
         return NULL;
@@ -15135,5 +15135,5 @@
 
     for (i = 0; i < rowSet->n; i++) {
-        p4SkyfileRow *object = p4SkyfileObjectFromMetadata(rowSet->data[i]);
+        warpSkyfileRow *object = warpSkyfileObjectFromMetadata(rowSet->data[i]);
         psArrayAdd(returnSet, 0, object);
         psFree(object);
@@ -15144,11 +15144,11 @@
     return returnSet;
 }
-bool p4SkyfileDeleteObject(psDB *dbh, const p4SkyfileRow *object)
-{
-    psMetadata *where = p4SkyfileMetadataFromObject(object);
-    long long count = psDBDeleteRows(dbh, P4SKYFILE_TABLE_NAME, where, 0);
+bool warpSkyfileDeleteObject(psDB *dbh, const warpSkyfileRow *object)
+{
+    psMetadata *where = warpSkyfileMetadataFromObject(object);
+    long long count = psDBDeleteRows(dbh, WARPSKYFILE_TABLE_NAME, where, 0);
     psFree(where);
     if (count < 0) {
-        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p4Skyfile");
+        psError(PS_ERR_UNKNOWN, true, "failed to delete row from warpSkyfile");
         return false;
     }
@@ -15156,21 +15156,21 @@
         // XXX should this be a psAbort() instead?  It is possible that
         // having an object match multiple rows was by design.
-        psError(PS_ERR_UNKNOWN, true, "p4SkyfileRow object matched more then one row.  Check your database schema");
-        return false;
-    }
-
-    return true;
-}
-long long p4SkyfileDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
+        psError(PS_ERR_UNKNOWN, true, "warpSkyfileRow object matched more then one row.  Check your database schema");
+        return false;
+    }
+
+    return true;
+}
+long long warpSkyfileDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
 {
     long long       deleted = 0;
 
     for (long long i = 0; i < objects->n; i++) {
-        p4SkyfileRow *object = objects->data[i];
-        psMetadata *where = p4SkyfileMetadataFromObject(object);
-        long long count = psDBDeleteRows(dbh, P4SKYFILE_TABLE_NAME, where, limit);
+        warpSkyfileRow *object = objects->data[i];
+        psMetadata *where = warpSkyfileMetadataFromObject(object);
+        long long count = psDBDeleteRows(dbh, WARPSKYFILE_TABLE_NAME, where, limit);
         psFree(where);
         if (count < 0) {
-            psError(PS_ERR_UNKNOWN, true, "failed to delete row from p4Skyfile");
+            psError(PS_ERR_UNKNOWN, true, "failed to delete row from warpSkyfile");
             return count;
         }
@@ -15181,5 +15181,5 @@
     return deleted;
 }
-bool p4SkyfilePrintObjects(FILE *stream, psArray *objects, bool mdcf)
+bool warpSkyfilePrintObjects(FILE *stream, psArray *objects, bool mdcf)
 {
     PS_ASSERT_PTR_NON_NULL(objects, false);
@@ -15187,9 +15187,9 @@
     psMetadata *output = psMetadataAlloc();
     for (long i = 0; i < psArrayLength(objects); i++) {
-        psMetadata *md = p4SkyfileMetadataFromObject(objects->data[i]);
+        psMetadata *md = warpSkyfileMetadataFromObject(objects->data[i]);
         if (!psMetadataAddMetadata(
             output,
             PS_LIST_TAIL,
-            P4SKYFILE_TABLE_NAME,
+            WARPSKYFILE_TABLE_NAME,
             PS_META_DUPLICATE_OK,
             NULL,
@@ -15212,9 +15212,9 @@
     return true;
 }
-bool p4SkyfilePrintObject(FILE *stream, p4SkyfileRow *object, bool mdcf)
+bool warpSkyfilePrintObject(FILE *stream, warpSkyfileRow *object, bool mdcf)
 {
     PS_ASSERT_PTR_NON_NULL(object, false);
 
-    psMetadata *md = p4SkyfileMetadataFromObject(object);
+    psMetadata *md = warpSkyfileMetadataFromObject(object);
 
     if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
@@ -15227,14 +15227,14 @@
     return true;
 }
-static void p5RunRowFree(p5RunRow *object);
-
-p5RunRow *p5RunRowAlloc(psS32 p5_id, const char *state, const char *workdir, const char *dvodb, psTime* registered, const char *skycell_id, const char *tess_id)
-{
-    p5RunRow        *_object;
-
-    _object = psAlloc(sizeof(p5RunRow));
-    psMemSetDeallocator(_object, (psFreeFunc)p5RunRowFree);
-
-    _object->p5_id = p5_id;
+static void diffRunRowFree(diffRunRow *object);
+
+diffRunRow *diffRunRowAlloc(psS32 diff_id, const char *state, const char *workdir, const char *dvodb, psTime* registered, const char *skycell_id, const char *tess_id)
+{
+    diffRunRow      *_object;
+
+    _object = psAlloc(sizeof(diffRunRow));
+    psMemSetDeallocator(_object, (psFreeFunc)diffRunRowFree);
+
+    _object->diff_id = diff_id;
     _object->state = psStringCopy(state);
     _object->workdir = psStringCopy(workdir);
@@ -15247,5 +15247,5 @@
 }
 
-static void p5RunRowFree(p5RunRow *object)
+static void diffRunRowFree(diffRunRow *object)
 {
     psFree(object->state);
@@ -15257,9 +15257,9 @@
 }
 
-bool p5RunCreateTable(psDB *dbh)
+bool diffRunCreateTable(psDB *dbh)
 {
     psMetadata *md = psMetadataAlloc();
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p5_id", PS_DATA_S32, "Primary Key AUTO_INCREMENT", 0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p5_id");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "diff_id", PS_DATA_S32, "Primary Key AUTO_INCREMENT", 0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item diff_id");
         psFree(md);
         return false;
@@ -15296,5 +15296,5 @@
     }
 
-    bool status = psDBCreateTable(dbh, P5RUN_TABLE_NAME, md);
+    bool status = psDBCreateTable(dbh, DIFFRUN_TABLE_NAME, md);
 
     psFree(md);
@@ -15303,14 +15303,14 @@
 }
 
-bool p5RunDropTable(psDB *dbh)
-{
-    return psDBDropTable(dbh, P5RUN_TABLE_NAME);
-}
-
-bool p5RunInsert(psDB * dbh, psS32 p5_id, const char *state, const char *workdir, const char *dvodb, psTime* registered, const char *skycell_id, const char *tess_id)
+bool diffRunDropTable(psDB *dbh)
+{
+    return psDBDropTable(dbh, DIFFRUN_TABLE_NAME);
+}
+
+bool diffRunInsert(psDB * dbh, psS32 diff_id, const char *state, const char *workdir, const char *dvodb, psTime* registered, const char *skycell_id, const char *tess_id)
 {
     psMetadata *md = psMetadataAlloc();
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p5_id", PS_DATA_S32, NULL, p5_id)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p5_id");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "diff_id", PS_DATA_S32, NULL, diff_id)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item diff_id");
         psFree(md);
         return false;
@@ -15347,5 +15347,5 @@
     }
 
-    bool status = psDBInsertOneRow(dbh, P5RUN_TABLE_NAME, md);
+    bool status = psDBInsertOneRow(dbh, DIFFRUN_TABLE_NAME, md);
     psFree(md);
 
@@ -15353,11 +15353,11 @@
 }
 
-long long p5RunDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
+long long diffRunDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
 {
     long long       deleted = 0;
 
-    long long count = psDBDeleteRows(dbh, P5RUN_TABLE_NAME, where, limit);
+    long long count = psDBDeleteRows(dbh, DIFFRUN_TABLE_NAME, where, limit);
     if (count < 0) {
-        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p5Run");
+        psError(PS_ERR_UNKNOWN, true, "failed to delete row from diffRun");
         return count;
 
@@ -15367,13 +15367,13 @@
     return deleted;
 }
-bool p5RunInsertObject(psDB *dbh, p5RunRow *object)
-{
-    return p5RunInsert(dbh, object->p5_id, object->state, object->workdir, object->dvodb, object->registered, object->skycell_id, object->tess_id);
-}
-
-bool p5RunInsertObjects(psDB *dbh, psArray *objects)
+bool diffRunInsertObject(psDB *dbh, diffRunRow *object)
+{
+    return diffRunInsert(dbh, object->diff_id, object->state, object->workdir, object->dvodb, object->registered, object->skycell_id, object->tess_id);
+}
+
+bool diffRunInsertObjects(psDB *dbh, psArray *objects)
 {
     for (long i = 0; i < psArrayLength(objects); i++) {
-        if (!p5RunInsertObject(dbh, objects->data[i])) {
+        if (!diffRunInsertObject(dbh, objects->data[i])) {
             return false;
         }
@@ -15383,11 +15383,11 @@
 }
 
-bool p5RunInsertFits(psDB *dbh, const psFits *fits)
+bool diffRunInsertFits(psDB *dbh, const psFits *fits)
 {
     psArray         *rowSet;
 
-    // move to (the first?) extension named  P5RUN_TABLE_NAME
-    if (!psFitsMoveExtName(fits, P5RUN_TABLE_NAME)) {
-        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", P5RUN_TABLE_NAME);
+    // move to (the first?) extension named  DIFFRUN_TABLE_NAME
+    if (!psFitsMoveExtName(fits, DIFFRUN_TABLE_NAME)) {
+        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", DIFFRUN_TABLE_NAME);
         return false;
     }
@@ -15407,5 +15407,5 @@
     }
 
-    if (!psDBInsertRows(dbh, P5RUN_TABLE_NAME, rowSet)) {
+    if (!psDBInsertRows(dbh, DIFFRUN_TABLE_NAME, rowSet)) {
         psError(PS_ERR_UNKNOWN, false, "databse insert failed");
         psFree(rowSet);
@@ -15418,9 +15418,9 @@
 }
 
-bool p5RunSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
+bool diffRunSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
 {
     psArray         *rowSet;
 
-    rowSet = psDBSelectRows(dbh, P5RUN_TABLE_NAME, where, limit);
+    rowSet = psDBSelectRows(dbh, DIFFRUN_TABLE_NAME, where, limit);
     if (!rowSet) {
         return false;
@@ -15428,5 +15428,5 @@
 
     // output to fits
-    if (!psFitsWriteTable(fits, NULL, rowSet, P5RUN_TABLE_NAME)) {
+    if (!psFitsWriteTable(fits, NULL, rowSet, DIFFRUN_TABLE_NAME)) {
         psError(PS_ERR_UNKNOWN, false, "FITS table write failed");
         psFree(rowSet);
@@ -15439,9 +15439,9 @@
 }
 
-psMetadata *p5RunMetadataFromObject(const p5RunRow *object)
+psMetadata *diffRunMetadataFromObject(const diffRunRow *object)
 {
     psMetadata *md = psMetadataAlloc();
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p5_id", PS_DATA_S32, NULL, object->p5_id)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p5_id");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "diff_id", PS_DATA_S32, NULL, object->diff_id)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item diff_id");
         psFree(md);
         return false;
@@ -15482,11 +15482,11 @@
 }
 
-p5RunRow *p5RunObjectFromMetadata(psMetadata *md)
+diffRunRow *diffRunObjectFromMetadata(psMetadata *md)
 {
 
 bool status = false;
-    psS32 p5_id = psMetadataLookupS32(&status, md, "p5_id");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item p5_id");
+    psS32 diff_id = psMetadataLookupS32(&status, md, "diff_id");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item diff_id");
         return false;
     }
@@ -15522,7 +15522,7 @@
     }
 
-    return p5RunRowAlloc(p5_id, state, workdir, dvodb, registered, skycell_id, tess_id);
-}
-psArray *p5RunSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
+    return diffRunRowAlloc(diff_id, state, workdir, dvodb, registered, skycell_id, tess_id);
+}
+psArray *diffRunSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
 {
     psArray         *rowSet;
@@ -15530,5 +15530,5 @@
     psU64           i;
 
-    rowSet = psDBSelectRows(dbh, P5RUN_TABLE_NAME, where, limit);
+    rowSet = psDBSelectRows(dbh, DIFFRUN_TABLE_NAME, where, limit);
     if (!rowSet) {
         return NULL;
@@ -15540,5 +15540,5 @@
 
     for (i = 0; i < rowSet->n; i++) {
-        p5RunRow *object = p5RunObjectFromMetadata(rowSet->data[i]);
+        diffRunRow *object = diffRunObjectFromMetadata(rowSet->data[i]);
         psArrayAdd(returnSet, 0, object);
         psFree(object);
@@ -15549,11 +15549,11 @@
     return returnSet;
 }
-bool p5RunDeleteObject(psDB *dbh, const p5RunRow *object)
-{
-    psMetadata *where = p5RunMetadataFromObject(object);
-    long long count = psDBDeleteRows(dbh, P5RUN_TABLE_NAME, where, 0);
+bool diffRunDeleteObject(psDB *dbh, const diffRunRow *object)
+{
+    psMetadata *where = diffRunMetadataFromObject(object);
+    long long count = psDBDeleteRows(dbh, DIFFRUN_TABLE_NAME, where, 0);
     psFree(where);
     if (count < 0) {
-        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p5Run");
+        psError(PS_ERR_UNKNOWN, true, "failed to delete row from diffRun");
         return false;
     }
@@ -15561,21 +15561,21 @@
         // XXX should this be a psAbort() instead?  It is possible that
         // having an object match multiple rows was by design.
-        psError(PS_ERR_UNKNOWN, true, "p5RunRow object matched more then one row.  Check your database schema");
-        return false;
-    }
-
-    return true;
-}
-long long p5RunDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
+        psError(PS_ERR_UNKNOWN, true, "diffRunRow object matched more then one row.  Check your database schema");
+        return false;
+    }
+
+    return true;
+}
+long long diffRunDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
 {
     long long       deleted = 0;
 
     for (long long i = 0; i < objects->n; i++) {
-        p5RunRow *object = objects->data[i];
-        psMetadata *where = p5RunMetadataFromObject(object);
-        long long count = psDBDeleteRows(dbh, P5RUN_TABLE_NAME, where, limit);
+        diffRunRow *object = objects->data[i];
+        psMetadata *where = diffRunMetadataFromObject(object);
+        long long count = psDBDeleteRows(dbh, DIFFRUN_TABLE_NAME, where, limit);
         psFree(where);
         if (count < 0) {
-            psError(PS_ERR_UNKNOWN, true, "failed to delete row from p5Run");
+            psError(PS_ERR_UNKNOWN, true, "failed to delete row from diffRun");
             return count;
         }
@@ -15586,5 +15586,5 @@
     return deleted;
 }
-bool p5RunPrintObjects(FILE *stream, psArray *objects, bool mdcf)
+bool diffRunPrintObjects(FILE *stream, psArray *objects, bool mdcf)
 {
     PS_ASSERT_PTR_NON_NULL(objects, false);
@@ -15592,9 +15592,9 @@
     psMetadata *output = psMetadataAlloc();
     for (long i = 0; i < psArrayLength(objects); i++) {
-        psMetadata *md = p5RunMetadataFromObject(objects->data[i]);
+        psMetadata *md = diffRunMetadataFromObject(objects->data[i]);
         if (!psMetadataAddMetadata(
             output,
             PS_LIST_TAIL,
-            P5RUN_TABLE_NAME,
+            DIFFRUN_TABLE_NAME,
             PS_META_DUPLICATE_OK,
             NULL,
@@ -15617,9 +15617,9 @@
     return true;
 }
-bool p5RunPrintObject(FILE *stream, p5RunRow *object, bool mdcf)
+bool diffRunPrintObject(FILE *stream, diffRunRow *object, bool mdcf)
 {
     PS_ASSERT_PTR_NON_NULL(object, false);
 
-    psMetadata *md = p5RunMetadataFromObject(object);
+    psMetadata *md = diffRunMetadataFromObject(object);
 
     if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
@@ -15632,15 +15632,15 @@
     return true;
 }
-static void p5InputSkyfileRowFree(p5InputSkyfileRow *object);
-
-p5InputSkyfileRow *p5InputSkyfileRowAlloc(psS32 p5_id, psS32 p4_id, const char *skycell_id, const char *tess_id, const char *kind, bool template)
-{
-    p5InputSkyfileRow *_object;
-
-    _object = psAlloc(sizeof(p5InputSkyfileRow));
-    psMemSetDeallocator(_object, (psFreeFunc)p5InputSkyfileRowFree);
-
-    _object->p5_id = p5_id;
-    _object->p4_id = p4_id;
+static void diffInputSkyfileRowFree(diffInputSkyfileRow *object);
+
+diffInputSkyfileRow *diffInputSkyfileRowAlloc(psS32 diff_id, psS32 warp_id, const char *skycell_id, const char *tess_id, const char *kind, bool template)
+{
+    diffInputSkyfileRow *_object;
+
+    _object = psAlloc(sizeof(diffInputSkyfileRow));
+    psMemSetDeallocator(_object, (psFreeFunc)diffInputSkyfileRowFree);
+
+    _object->diff_id = diff_id;
+    _object->warp_id = warp_id;
     _object->skycell_id = psStringCopy(skycell_id);
     _object->tess_id = psStringCopy(tess_id);
@@ -15651,5 +15651,5 @@
 }
 
-static void p5InputSkyfileRowFree(p5InputSkyfileRow *object)
+static void diffInputSkyfileRowFree(diffInputSkyfileRow *object)
 {
     psFree(object->skycell_id);
@@ -15658,14 +15658,14 @@
 }
 
-bool p5InputSkyfileCreateTable(psDB *dbh)
+bool diffInputSkyfileCreateTable(psDB *dbh)
 {
     psMetadata *md = psMetadataAlloc();
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p5_id", PS_DATA_S32, "Primary Key", 0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p5_id");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p4_id", PS_DATA_S32, "Primary Key", 0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p4_id");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "diff_id", PS_DATA_S32, "Primary Key", 0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item diff_id");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "warp_id", PS_DATA_S32, "Primary Key", 0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item warp_id");
         psFree(md);
         return false;
@@ -15692,5 +15692,5 @@
     }
 
-    bool status = psDBCreateTable(dbh, P5INPUTSKYFILE_TABLE_NAME, md);
+    bool status = psDBCreateTable(dbh, DIFFINPUTSKYFILE_TABLE_NAME, md);
 
     psFree(md);
@@ -15699,19 +15699,19 @@
 }
 
-bool p5InputSkyfileDropTable(psDB *dbh)
-{
-    return psDBDropTable(dbh, P5INPUTSKYFILE_TABLE_NAME);
-}
-
-bool p5InputSkyfileInsert(psDB * dbh, psS32 p5_id, psS32 p4_id, const char *skycell_id, const char *tess_id, const char *kind, bool template)
+bool diffInputSkyfileDropTable(psDB *dbh)
+{
+    return psDBDropTable(dbh, DIFFINPUTSKYFILE_TABLE_NAME);
+}
+
+bool diffInputSkyfileInsert(psDB * dbh, psS32 diff_id, psS32 warp_id, const char *skycell_id, const char *tess_id, const char *kind, bool template)
 {
     psMetadata *md = psMetadataAlloc();
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p5_id", PS_DATA_S32, NULL, p5_id)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p5_id");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p4_id", PS_DATA_S32, NULL, p4_id)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p4_id");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "diff_id", PS_DATA_S32, NULL, diff_id)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item diff_id");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "warp_id", PS_DATA_S32, NULL, warp_id)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item warp_id");
         psFree(md);
         return false;
@@ -15738,5 +15738,5 @@
     }
 
-    bool status = psDBInsertOneRow(dbh, P5INPUTSKYFILE_TABLE_NAME, md);
+    bool status = psDBInsertOneRow(dbh, DIFFINPUTSKYFILE_TABLE_NAME, md);
     psFree(md);
 
@@ -15744,11 +15744,11 @@
 }
 
-long long p5InputSkyfileDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
+long long diffInputSkyfileDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
 {
     long long       deleted = 0;
 
-    long long count = psDBDeleteRows(dbh, P5INPUTSKYFILE_TABLE_NAME, where, limit);
+    long long count = psDBDeleteRows(dbh, DIFFINPUTSKYFILE_TABLE_NAME, where, limit);
     if (count < 0) {
-        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p5InputSkyfile");
+        psError(PS_ERR_UNKNOWN, true, "failed to delete row from diffInputSkyfile");
         return count;
 
@@ -15758,13 +15758,13 @@
     return deleted;
 }
-bool p5InputSkyfileInsertObject(psDB *dbh, p5InputSkyfileRow *object)
-{
-    return p5InputSkyfileInsert(dbh, object->p5_id, object->p4_id, object->skycell_id, object->tess_id, object->kind, object->template);
-}
-
-bool p5InputSkyfileInsertObjects(psDB *dbh, psArray *objects)
+bool diffInputSkyfileInsertObject(psDB *dbh, diffInputSkyfileRow *object)
+{
+    return diffInputSkyfileInsert(dbh, object->diff_id, object->warp_id, object->skycell_id, object->tess_id, object->kind, object->template);
+}
+
+bool diffInputSkyfileInsertObjects(psDB *dbh, psArray *objects)
 {
     for (long i = 0; i < psArrayLength(objects); i++) {
-        if (!p5InputSkyfileInsertObject(dbh, objects->data[i])) {
+        if (!diffInputSkyfileInsertObject(dbh, objects->data[i])) {
             return false;
         }
@@ -15774,11 +15774,11 @@
 }
 
-bool p5InputSkyfileInsertFits(psDB *dbh, const psFits *fits)
+bool diffInputSkyfileInsertFits(psDB *dbh, const psFits *fits)
 {
     psArray         *rowSet;
 
-    // move to (the first?) extension named  P5INPUTSKYFILE_TABLE_NAME
-    if (!psFitsMoveExtName(fits, P5INPUTSKYFILE_TABLE_NAME)) {
-        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", P5INPUTSKYFILE_TABLE_NAME);
+    // move to (the first?) extension named  DIFFINPUTSKYFILE_TABLE_NAME
+    if (!psFitsMoveExtName(fits, DIFFINPUTSKYFILE_TABLE_NAME)) {
+        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", DIFFINPUTSKYFILE_TABLE_NAME);
         return false;
     }
@@ -15798,5 +15798,5 @@
     }
 
-    if (!psDBInsertRows(dbh, P5INPUTSKYFILE_TABLE_NAME, rowSet)) {
+    if (!psDBInsertRows(dbh, DIFFINPUTSKYFILE_TABLE_NAME, rowSet)) {
         psError(PS_ERR_UNKNOWN, false, "databse insert failed");
         psFree(rowSet);
@@ -15809,9 +15809,9 @@
 }
 
-bool p5InputSkyfileSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
+bool diffInputSkyfileSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
 {
     psArray         *rowSet;
 
-    rowSet = psDBSelectRows(dbh, P5INPUTSKYFILE_TABLE_NAME, where, limit);
+    rowSet = psDBSelectRows(dbh, DIFFINPUTSKYFILE_TABLE_NAME, where, limit);
     if (!rowSet) {
         return false;
@@ -15819,5 +15819,5 @@
 
     // output to fits
-    if (!psFitsWriteTable(fits, NULL, rowSet, P5INPUTSKYFILE_TABLE_NAME)) {
+    if (!psFitsWriteTable(fits, NULL, rowSet, DIFFINPUTSKYFILE_TABLE_NAME)) {
         psError(PS_ERR_UNKNOWN, false, "FITS table write failed");
         psFree(rowSet);
@@ -15830,14 +15830,14 @@
 }
 
-psMetadata *p5InputSkyfileMetadataFromObject(const p5InputSkyfileRow *object)
+psMetadata *diffInputSkyfileMetadataFromObject(const diffInputSkyfileRow *object)
 {
     psMetadata *md = psMetadataAlloc();
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p5_id", PS_DATA_S32, NULL, object->p5_id)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p5_id");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p4_id", PS_DATA_S32, NULL, object->p4_id)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p4_id");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "diff_id", PS_DATA_S32, NULL, object->diff_id)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item diff_id");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "warp_id", PS_DATA_S32, NULL, object->warp_id)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item warp_id");
         psFree(md);
         return false;
@@ -15868,16 +15868,16 @@
 }
 
-p5InputSkyfileRow *p5InputSkyfileObjectFromMetadata(psMetadata *md)
+diffInputSkyfileRow *diffInputSkyfileObjectFromMetadata(psMetadata *md)
 {
 
 bool status = false;
-    psS32 p5_id = psMetadataLookupS32(&status, md, "p5_id");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item p5_id");
-        return false;
-    }
-    psS32 p4_id = psMetadataLookupS32(&status, md, "p4_id");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item p4_id");
+    psS32 diff_id = psMetadataLookupS32(&status, md, "diff_id");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item diff_id");
+        return false;
+    }
+    psS32 warp_id = psMetadataLookupS32(&status, md, "warp_id");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item warp_id");
         return false;
     }
@@ -15903,7 +15903,7 @@
     }
 
-    return p5InputSkyfileRowAlloc(p5_id, p4_id, skycell_id, tess_id, kind, template);
-}
-psArray *p5InputSkyfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
+    return diffInputSkyfileRowAlloc(diff_id, warp_id, skycell_id, tess_id, kind, template);
+}
+psArray *diffInputSkyfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
 {
     psArray         *rowSet;
@@ -15911,5 +15911,5 @@
     psU64           i;
 
-    rowSet = psDBSelectRows(dbh, P5INPUTSKYFILE_TABLE_NAME, where, limit);
+    rowSet = psDBSelectRows(dbh, DIFFINPUTSKYFILE_TABLE_NAME, where, limit);
     if (!rowSet) {
         return NULL;
@@ -15921,5 +15921,5 @@
 
     for (i = 0; i < rowSet->n; i++) {
-        p5InputSkyfileRow *object = p5InputSkyfileObjectFromMetadata(rowSet->data[i]);
+        diffInputSkyfileRow *object = diffInputSkyfileObjectFromMetadata(rowSet->data[i]);
         psArrayAdd(returnSet, 0, object);
         psFree(object);
@@ -15930,11 +15930,11 @@
     return returnSet;
 }
-bool p5InputSkyfileDeleteObject(psDB *dbh, const p5InputSkyfileRow *object)
-{
-    psMetadata *where = p5InputSkyfileMetadataFromObject(object);
-    long long count = psDBDeleteRows(dbh, P5INPUTSKYFILE_TABLE_NAME, where, 0);
+bool diffInputSkyfileDeleteObject(psDB *dbh, const diffInputSkyfileRow *object)
+{
+    psMetadata *where = diffInputSkyfileMetadataFromObject(object);
+    long long count = psDBDeleteRows(dbh, DIFFINPUTSKYFILE_TABLE_NAME, where, 0);
     psFree(where);
     if (count < 0) {
-        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p5InputSkyfile");
+        psError(PS_ERR_UNKNOWN, true, "failed to delete row from diffInputSkyfile");
         return false;
     }
@@ -15942,21 +15942,21 @@
         // XXX should this be a psAbort() instead?  It is possible that
         // having an object match multiple rows was by design.
-        psError(PS_ERR_UNKNOWN, true, "p5InputSkyfileRow object matched more then one row.  Check your database schema");
-        return false;
-    }
-
-    return true;
-}
-long long p5InputSkyfileDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
+        psError(PS_ERR_UNKNOWN, true, "diffInputSkyfileRow object matched more then one row.  Check your database schema");
+        return false;
+    }
+
+    return true;
+}
+long long diffInputSkyfileDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
 {
     long long       deleted = 0;
 
     for (long long i = 0; i < objects->n; i++) {
-        p5InputSkyfileRow *object = objects->data[i];
-        psMetadata *where = p5InputSkyfileMetadataFromObject(object);
-        long long count = psDBDeleteRows(dbh, P5INPUTSKYFILE_TABLE_NAME, where, limit);
+        diffInputSkyfileRow *object = objects->data[i];
+        psMetadata *where = diffInputSkyfileMetadataFromObject(object);
+        long long count = psDBDeleteRows(dbh, DIFFINPUTSKYFILE_TABLE_NAME, where, limit);
         psFree(where);
         if (count < 0) {
-            psError(PS_ERR_UNKNOWN, true, "failed to delete row from p5InputSkyfile");
+            psError(PS_ERR_UNKNOWN, true, "failed to delete row from diffInputSkyfile");
             return count;
         }
@@ -15967,5 +15967,5 @@
     return deleted;
 }
-bool p5InputSkyfilePrintObjects(FILE *stream, psArray *objects, bool mdcf)
+bool diffInputSkyfilePrintObjects(FILE *stream, psArray *objects, bool mdcf)
 {
     PS_ASSERT_PTR_NON_NULL(objects, false);
@@ -15973,9 +15973,9 @@
     psMetadata *output = psMetadataAlloc();
     for (long i = 0; i < psArrayLength(objects); i++) {
-        psMetadata *md = p5InputSkyfileMetadataFromObject(objects->data[i]);
+        psMetadata *md = diffInputSkyfileMetadataFromObject(objects->data[i]);
         if (!psMetadataAddMetadata(
             output,
             PS_LIST_TAIL,
-            P5INPUTSKYFILE_TABLE_NAME,
+            DIFFINPUTSKYFILE_TABLE_NAME,
             PS_META_DUPLICATE_OK,
             NULL,
@@ -15998,9 +15998,9 @@
     return true;
 }
-bool p5InputSkyfilePrintObject(FILE *stream, p5InputSkyfileRow *object, bool mdcf)
+bool diffInputSkyfilePrintObject(FILE *stream, diffInputSkyfileRow *object, bool mdcf)
 {
     PS_ASSERT_PTR_NON_NULL(object, false);
 
-    psMetadata *md = p5InputSkyfileMetadataFromObject(object);
+    psMetadata *md = diffInputSkyfileMetadataFromObject(object);
 
     if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
@@ -16013,14 +16013,14 @@
     return true;
 }
-static void p5DiffSkyfileRowFree(p5DiffSkyfileRow *object);
-
-p5DiffSkyfileRow *p5DiffSkyfileRowAlloc(psS32 p5_id, const char *uri, psF64 bg, psF64 bg_mean_stdev)
-{
-    p5DiffSkyfileRow *_object;
-
-    _object = psAlloc(sizeof(p5DiffSkyfileRow));
-    psMemSetDeallocator(_object, (psFreeFunc)p5DiffSkyfileRowFree);
-
-    _object->p5_id = p5_id;
+static void diffSkyfileRowFree(diffSkyfileRow *object);
+
+diffSkyfileRow *diffSkyfileRowAlloc(psS32 diff_id, const char *uri, psF64 bg, psF64 bg_mean_stdev)
+{
+    diffSkyfileRow  *_object;
+
+    _object = psAlloc(sizeof(diffSkyfileRow));
+    psMemSetDeallocator(_object, (psFreeFunc)diffSkyfileRowFree);
+
+    _object->diff_id = diff_id;
     _object->uri = psStringCopy(uri);
     _object->bg = bg;
@@ -16030,14 +16030,14 @@
 }
 
-static void p5DiffSkyfileRowFree(p5DiffSkyfileRow *object)
+static void diffSkyfileRowFree(diffSkyfileRow *object)
 {
     psFree(object->uri);
 }
 
-bool p5DiffSkyfileCreateTable(psDB *dbh)
+bool diffSkyfileCreateTable(psDB *dbh)
 {
     psMetadata *md = psMetadataAlloc();
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p5_id", PS_DATA_S32, "Primary Key", 0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p5_id");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "diff_id", PS_DATA_S32, "Primary Key", 0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item diff_id");
         psFree(md);
         return false;
@@ -16059,5 +16059,5 @@
     }
 
-    bool status = psDBCreateTable(dbh, P5DIFFSKYFILE_TABLE_NAME, md);
+    bool status = psDBCreateTable(dbh, DIFFSKYFILE_TABLE_NAME, md);
 
     psFree(md);
@@ -16066,14 +16066,14 @@
 }
 
-bool p5DiffSkyfileDropTable(psDB *dbh)
-{
-    return psDBDropTable(dbh, P5DIFFSKYFILE_TABLE_NAME);
-}
-
-bool p5DiffSkyfileInsert(psDB * dbh, psS32 p5_id, const char *uri, psF64 bg, psF64 bg_mean_stdev)
+bool diffSkyfileDropTable(psDB *dbh)
+{
+    return psDBDropTable(dbh, DIFFSKYFILE_TABLE_NAME);
+}
+
+bool diffSkyfileInsert(psDB * dbh, psS32 diff_id, const char *uri, psF64 bg, psF64 bg_mean_stdev)
 {
     psMetadata *md = psMetadataAlloc();
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p5_id", PS_DATA_S32, NULL, p5_id)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p5_id");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "diff_id", PS_DATA_S32, NULL, diff_id)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item diff_id");
         psFree(md);
         return false;
@@ -16095,5 +16095,5 @@
     }
 
-    bool status = psDBInsertOneRow(dbh, P5DIFFSKYFILE_TABLE_NAME, md);
+    bool status = psDBInsertOneRow(dbh, DIFFSKYFILE_TABLE_NAME, md);
     psFree(md);
 
@@ -16101,11 +16101,11 @@
 }
 
-long long p5DiffSkyfileDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
+long long diffSkyfileDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
 {
     long long       deleted = 0;
 
-    long long count = psDBDeleteRows(dbh, P5DIFFSKYFILE_TABLE_NAME, where, limit);
+    long long count = psDBDeleteRows(dbh, DIFFSKYFILE_TABLE_NAME, where, limit);
     if (count < 0) {
-        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p5DiffSkyfile");
+        psError(PS_ERR_UNKNOWN, true, "failed to delete row from diffSkyfile");
         return count;
 
@@ -16115,13 +16115,13 @@
     return deleted;
 }
-bool p5DiffSkyfileInsertObject(psDB *dbh, p5DiffSkyfileRow *object)
-{
-    return p5DiffSkyfileInsert(dbh, object->p5_id, object->uri, object->bg, object->bg_mean_stdev);
-}
-
-bool p5DiffSkyfileInsertObjects(psDB *dbh, psArray *objects)
+bool diffSkyfileInsertObject(psDB *dbh, diffSkyfileRow *object)
+{
+    return diffSkyfileInsert(dbh, object->diff_id, object->uri, object->bg, object->bg_mean_stdev);
+}
+
+bool diffSkyfileInsertObjects(psDB *dbh, psArray *objects)
 {
     for (long i = 0; i < psArrayLength(objects); i++) {
-        if (!p5DiffSkyfileInsertObject(dbh, objects->data[i])) {
+        if (!diffSkyfileInsertObject(dbh, objects->data[i])) {
             return false;
         }
@@ -16131,11 +16131,11 @@
 }
 
-bool p5DiffSkyfileInsertFits(psDB *dbh, const psFits *fits)
+bool diffSkyfileInsertFits(psDB *dbh, const psFits *fits)
 {
     psArray         *rowSet;
 
-    // move to (the first?) extension named  P5DIFFSKYFILE_TABLE_NAME
-    if (!psFitsMoveExtName(fits, P5DIFFSKYFILE_TABLE_NAME)) {
-        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", P5DIFFSKYFILE_TABLE_NAME);
+    // move to (the first?) extension named  DIFFSKYFILE_TABLE_NAME
+    if (!psFitsMoveExtName(fits, DIFFSKYFILE_TABLE_NAME)) {
+        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", DIFFSKYFILE_TABLE_NAME);
         return false;
     }
@@ -16155,5 +16155,5 @@
     }
 
-    if (!psDBInsertRows(dbh, P5DIFFSKYFILE_TABLE_NAME, rowSet)) {
+    if (!psDBInsertRows(dbh, DIFFSKYFILE_TABLE_NAME, rowSet)) {
         psError(PS_ERR_UNKNOWN, false, "databse insert failed");
         psFree(rowSet);
@@ -16166,9 +16166,9 @@
 }
 
-bool p5DiffSkyfileSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
+bool diffSkyfileSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
 {
     psArray         *rowSet;
 
-    rowSet = psDBSelectRows(dbh, P5DIFFSKYFILE_TABLE_NAME, where, limit);
+    rowSet = psDBSelectRows(dbh, DIFFSKYFILE_TABLE_NAME, where, limit);
     if (!rowSet) {
         return false;
@@ -16176,5 +16176,5 @@
 
     // output to fits
-    if (!psFitsWriteTable(fits, NULL, rowSet, P5DIFFSKYFILE_TABLE_NAME)) {
+    if (!psFitsWriteTable(fits, NULL, rowSet, DIFFSKYFILE_TABLE_NAME)) {
         psError(PS_ERR_UNKNOWN, false, "FITS table write failed");
         psFree(rowSet);
@@ -16187,9 +16187,9 @@
 }
 
-psMetadata *p5DiffSkyfileMetadataFromObject(const p5DiffSkyfileRow *object)
+psMetadata *diffSkyfileMetadataFromObject(const diffSkyfileRow *object)
 {
     psMetadata *md = psMetadataAlloc();
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p5_id", PS_DATA_S32, NULL, object->p5_id)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p5_id");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "diff_id", PS_DATA_S32, NULL, object->diff_id)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item diff_id");
         psFree(md);
         return false;
@@ -16215,11 +16215,11 @@
 }
 
-p5DiffSkyfileRow *p5DiffSkyfileObjectFromMetadata(psMetadata *md)
+diffSkyfileRow *diffSkyfileObjectFromMetadata(psMetadata *md)
 {
 
 bool status = false;
-    psS32 p5_id = psMetadataLookupS32(&status, md, "p5_id");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item p5_id");
+    psS32 diff_id = psMetadataLookupS32(&status, md, "diff_id");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item diff_id");
         return false;
     }
@@ -16240,7 +16240,7 @@
     }
 
-    return p5DiffSkyfileRowAlloc(p5_id, uri, bg, bg_mean_stdev);
-}
-psArray *p5DiffSkyfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
+    return diffSkyfileRowAlloc(diff_id, uri, bg, bg_mean_stdev);
+}
+psArray *diffSkyfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
 {
     psArray         *rowSet;
@@ -16248,5 +16248,5 @@
     psU64           i;
 
-    rowSet = psDBSelectRows(dbh, P5DIFFSKYFILE_TABLE_NAME, where, limit);
+    rowSet = psDBSelectRows(dbh, DIFFSKYFILE_TABLE_NAME, where, limit);
     if (!rowSet) {
         return NULL;
@@ -16258,5 +16258,5 @@
 
     for (i = 0; i < rowSet->n; i++) {
-        p5DiffSkyfileRow *object = p5DiffSkyfileObjectFromMetadata(rowSet->data[i]);
+        diffSkyfileRow *object = diffSkyfileObjectFromMetadata(rowSet->data[i]);
         psArrayAdd(returnSet, 0, object);
         psFree(object);
@@ -16267,11 +16267,11 @@
     return returnSet;
 }
-bool p5DiffSkyfileDeleteObject(psDB *dbh, const p5DiffSkyfileRow *object)
-{
-    psMetadata *where = p5DiffSkyfileMetadataFromObject(object);
-    long long count = psDBDeleteRows(dbh, P5DIFFSKYFILE_TABLE_NAME, where, 0);
+bool diffSkyfileDeleteObject(psDB *dbh, const diffSkyfileRow *object)
+{
+    psMetadata *where = diffSkyfileMetadataFromObject(object);
+    long long count = psDBDeleteRows(dbh, DIFFSKYFILE_TABLE_NAME, where, 0);
     psFree(where);
     if (count < 0) {
-        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p5DiffSkyfile");
+        psError(PS_ERR_UNKNOWN, true, "failed to delete row from diffSkyfile");
         return false;
     }
@@ -16279,21 +16279,21 @@
         // XXX should this be a psAbort() instead?  It is possible that
         // having an object match multiple rows was by design.
-        psError(PS_ERR_UNKNOWN, true, "p5DiffSkyfileRow object matched more then one row.  Check your database schema");
-        return false;
-    }
-
-    return true;
-}
-long long p5DiffSkyfileDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
+        psError(PS_ERR_UNKNOWN, true, "diffSkyfileRow object matched more then one row.  Check your database schema");
+        return false;
+    }
+
+    return true;
+}
+long long diffSkyfileDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
 {
     long long       deleted = 0;
 
     for (long long i = 0; i < objects->n; i++) {
-        p5DiffSkyfileRow *object = objects->data[i];
-        psMetadata *where = p5DiffSkyfileMetadataFromObject(object);
-        long long count = psDBDeleteRows(dbh, P5DIFFSKYFILE_TABLE_NAME, where, limit);
+        diffSkyfileRow *object = objects->data[i];
+        psMetadata *where = diffSkyfileMetadataFromObject(object);
+        long long count = psDBDeleteRows(dbh, DIFFSKYFILE_TABLE_NAME, where, limit);
         psFree(where);
         if (count < 0) {
-            psError(PS_ERR_UNKNOWN, true, "failed to delete row from p5DiffSkyfile");
+            psError(PS_ERR_UNKNOWN, true, "failed to delete row from diffSkyfile");
             return count;
         }
@@ -16304,5 +16304,5 @@
     return deleted;
 }
-bool p5DiffSkyfilePrintObjects(FILE *stream, psArray *objects, bool mdcf)
+bool diffSkyfilePrintObjects(FILE *stream, psArray *objects, bool mdcf)
 {
     PS_ASSERT_PTR_NON_NULL(objects, false);
@@ -16310,9 +16310,9 @@
     psMetadata *output = psMetadataAlloc();
     for (long i = 0; i < psArrayLength(objects); i++) {
-        psMetadata *md = p5DiffSkyfileMetadataFromObject(objects->data[i]);
+        psMetadata *md = diffSkyfileMetadataFromObject(objects->data[i]);
         if (!psMetadataAddMetadata(
             output,
             PS_LIST_TAIL,
-            P5DIFFSKYFILE_TABLE_NAME,
+            DIFFSKYFILE_TABLE_NAME,
             PS_META_DUPLICATE_OK,
             NULL,
@@ -16335,9 +16335,9 @@
     return true;
 }
-bool p5DiffSkyfilePrintObject(FILE *stream, p5DiffSkyfileRow *object, bool mdcf)
+bool diffSkyfilePrintObject(FILE *stream, diffSkyfileRow *object, bool mdcf)
 {
     PS_ASSERT_PTR_NON_NULL(object, false);
 
-    psMetadata *md = p5DiffSkyfileMetadataFromObject(object);
+    psMetadata *md = diffSkyfileMetadataFromObject(object);
 
     if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
@@ -16350,14 +16350,14 @@
     return true;
 }
-static void p6RunRowFree(p6RunRow *object);
-
-p6RunRow *p6RunRowAlloc(psS32 p6_id, const char *state, const char *workdir, const char *dvodb, psTime* registered, const char *skycell_id, const char *tess_id)
-{
-    p6RunRow        *_object;
-
-    _object = psAlloc(sizeof(p6RunRow));
-    psMemSetDeallocator(_object, (psFreeFunc)p6RunRowFree);
-
-    _object->p6_id = p6_id;
+static void stackRunRowFree(stackRunRow *object);
+
+stackRunRow *stackRunRowAlloc(psS32 stack_id, const char *state, const char *workdir, const char *dvodb, psTime* registered, const char *skycell_id, const char *tess_id)
+{
+    stackRunRow     *_object;
+
+    _object = psAlloc(sizeof(stackRunRow));
+    psMemSetDeallocator(_object, (psFreeFunc)stackRunRowFree);
+
+    _object->stack_id = stack_id;
     _object->state = psStringCopy(state);
     _object->workdir = psStringCopy(workdir);
@@ -16370,5 +16370,5 @@
 }
 
-static void p6RunRowFree(p6RunRow *object)
+static void stackRunRowFree(stackRunRow *object)
 {
     psFree(object->state);
@@ -16380,9 +16380,9 @@
 }
 
-bool p6RunCreateTable(psDB *dbh)
+bool stackRunCreateTable(psDB *dbh)
 {
     psMetadata *md = psMetadataAlloc();
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p6_id", PS_DATA_S32, "Primary Key AUTO_INCREMENT", 0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p6_id");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "stack_id", PS_DATA_S32, "Primary Key AUTO_INCREMENT", 0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item stack_id");
         psFree(md);
         return false;
@@ -16419,5 +16419,5 @@
     }
 
-    bool status = psDBCreateTable(dbh, P6RUN_TABLE_NAME, md);
+    bool status = psDBCreateTable(dbh, STACKRUN_TABLE_NAME, md);
 
     psFree(md);
@@ -16426,14 +16426,14 @@
 }
 
-bool p6RunDropTable(psDB *dbh)
-{
-    return psDBDropTable(dbh, P6RUN_TABLE_NAME);
-}
-
-bool p6RunInsert(psDB * dbh, psS32 p6_id, const char *state, const char *workdir, const char *dvodb, psTime* registered, const char *skycell_id, const char *tess_id)
+bool stackRunDropTable(psDB *dbh)
+{
+    return psDBDropTable(dbh, STACKRUN_TABLE_NAME);
+}
+
+bool stackRunInsert(psDB * dbh, psS32 stack_id, const char *state, const char *workdir, const char *dvodb, psTime* registered, const char *skycell_id, const char *tess_id)
 {
     psMetadata *md = psMetadataAlloc();
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p6_id", PS_DATA_S32, NULL, p6_id)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p6_id");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "stack_id", PS_DATA_S32, NULL, stack_id)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item stack_id");
         psFree(md);
         return false;
@@ -16470,5 +16470,5 @@
     }
 
-    bool status = psDBInsertOneRow(dbh, P6RUN_TABLE_NAME, md);
+    bool status = psDBInsertOneRow(dbh, STACKRUN_TABLE_NAME, md);
     psFree(md);
 
@@ -16476,11 +16476,11 @@
 }
 
-long long p6RunDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
+long long stackRunDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
 {
     long long       deleted = 0;
 
-    long long count = psDBDeleteRows(dbh, P6RUN_TABLE_NAME, where, limit);
+    long long count = psDBDeleteRows(dbh, STACKRUN_TABLE_NAME, where, limit);
     if (count < 0) {
-        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p6Run");
+        psError(PS_ERR_UNKNOWN, true, "failed to delete row from stackRun");
         return count;
 
@@ -16490,13 +16490,13 @@
     return deleted;
 }
-bool p6RunInsertObject(psDB *dbh, p6RunRow *object)
-{
-    return p6RunInsert(dbh, object->p6_id, object->state, object->workdir, object->dvodb, object->registered, object->skycell_id, object->tess_id);
-}
-
-bool p6RunInsertObjects(psDB *dbh, psArray *objects)
+bool stackRunInsertObject(psDB *dbh, stackRunRow *object)
+{
+    return stackRunInsert(dbh, object->stack_id, object->state, object->workdir, object->dvodb, object->registered, object->skycell_id, object->tess_id);
+}
+
+bool stackRunInsertObjects(psDB *dbh, psArray *objects)
 {
     for (long i = 0; i < psArrayLength(objects); i++) {
-        if (!p6RunInsertObject(dbh, objects->data[i])) {
+        if (!stackRunInsertObject(dbh, objects->data[i])) {
             return false;
         }
@@ -16506,11 +16506,11 @@
 }
 
-bool p6RunInsertFits(psDB *dbh, const psFits *fits)
+bool stackRunInsertFits(psDB *dbh, const psFits *fits)
 {
     psArray         *rowSet;
 
-    // move to (the first?) extension named  P6RUN_TABLE_NAME
-    if (!psFitsMoveExtName(fits, P6RUN_TABLE_NAME)) {
-        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", P6RUN_TABLE_NAME);
+    // move to (the first?) extension named  STACKRUN_TABLE_NAME
+    if (!psFitsMoveExtName(fits, STACKRUN_TABLE_NAME)) {
+        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", STACKRUN_TABLE_NAME);
         return false;
     }
@@ -16530,5 +16530,5 @@
     }
 
-    if (!psDBInsertRows(dbh, P6RUN_TABLE_NAME, rowSet)) {
+    if (!psDBInsertRows(dbh, STACKRUN_TABLE_NAME, rowSet)) {
         psError(PS_ERR_UNKNOWN, false, "databse insert failed");
         psFree(rowSet);
@@ -16541,9 +16541,9 @@
 }
 
-bool p6RunSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
+bool stackRunSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
 {
     psArray         *rowSet;
 
-    rowSet = psDBSelectRows(dbh, P6RUN_TABLE_NAME, where, limit);
+    rowSet = psDBSelectRows(dbh, STACKRUN_TABLE_NAME, where, limit);
     if (!rowSet) {
         return false;
@@ -16551,5 +16551,5 @@
 
     // output to fits
-    if (!psFitsWriteTable(fits, NULL, rowSet, P6RUN_TABLE_NAME)) {
+    if (!psFitsWriteTable(fits, NULL, rowSet, STACKRUN_TABLE_NAME)) {
         psError(PS_ERR_UNKNOWN, false, "FITS table write failed");
         psFree(rowSet);
@@ -16562,9 +16562,9 @@
 }
 
-psMetadata *p6RunMetadataFromObject(const p6RunRow *object)
+psMetadata *stackRunMetadataFromObject(const stackRunRow *object)
 {
     psMetadata *md = psMetadataAlloc();
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p6_id", PS_DATA_S32, NULL, object->p6_id)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p6_id");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "stack_id", PS_DATA_S32, NULL, object->stack_id)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item stack_id");
         psFree(md);
         return false;
@@ -16605,11 +16605,11 @@
 }
 
-p6RunRow *p6RunObjectFromMetadata(psMetadata *md)
+stackRunRow *stackRunObjectFromMetadata(psMetadata *md)
 {
 
 bool status = false;
-    psS32 p6_id = psMetadataLookupS32(&status, md, "p6_id");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item p6_id");
+    psS32 stack_id = psMetadataLookupS32(&status, md, "stack_id");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item stack_id");
         return false;
     }
@@ -16645,7 +16645,7 @@
     }
 
-    return p6RunRowAlloc(p6_id, state, workdir, dvodb, registered, skycell_id, tess_id);
-}
-psArray *p6RunSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
+    return stackRunRowAlloc(stack_id, state, workdir, dvodb, registered, skycell_id, tess_id);
+}
+psArray *stackRunSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
 {
     psArray         *rowSet;
@@ -16653,5 +16653,5 @@
     psU64           i;
 
-    rowSet = psDBSelectRows(dbh, P6RUN_TABLE_NAME, where, limit);
+    rowSet = psDBSelectRows(dbh, STACKRUN_TABLE_NAME, where, limit);
     if (!rowSet) {
         return NULL;
@@ -16663,5 +16663,5 @@
 
     for (i = 0; i < rowSet->n; i++) {
-        p6RunRow *object = p6RunObjectFromMetadata(rowSet->data[i]);
+        stackRunRow *object = stackRunObjectFromMetadata(rowSet->data[i]);
         psArrayAdd(returnSet, 0, object);
         psFree(object);
@@ -16672,11 +16672,11 @@
     return returnSet;
 }
-bool p6RunDeleteObject(psDB *dbh, const p6RunRow *object)
-{
-    psMetadata *where = p6RunMetadataFromObject(object);
-    long long count = psDBDeleteRows(dbh, P6RUN_TABLE_NAME, where, 0);
+bool stackRunDeleteObject(psDB *dbh, const stackRunRow *object)
+{
+    psMetadata *where = stackRunMetadataFromObject(object);
+    long long count = psDBDeleteRows(dbh, STACKRUN_TABLE_NAME, where, 0);
     psFree(where);
     if (count < 0) {
-        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p6Run");
+        psError(PS_ERR_UNKNOWN, true, "failed to delete row from stackRun");
         return false;
     }
@@ -16684,21 +16684,21 @@
         // XXX should this be a psAbort() instead?  It is possible that
         // having an object match multiple rows was by design.
-        psError(PS_ERR_UNKNOWN, true, "p6RunRow object matched more then one row.  Check your database schema");
-        return false;
-    }
-
-    return true;
-}
-long long p6RunDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
+        psError(PS_ERR_UNKNOWN, true, "stackRunRow object matched more then one row.  Check your database schema");
+        return false;
+    }
+
+    return true;
+}
+long long stackRunDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
 {
     long long       deleted = 0;
 
     for (long long i = 0; i < objects->n; i++) {
-        p6RunRow *object = objects->data[i];
-        psMetadata *where = p6RunMetadataFromObject(object);
-        long long count = psDBDeleteRows(dbh, P6RUN_TABLE_NAME, where, limit);
+        stackRunRow *object = objects->data[i];
+        psMetadata *where = stackRunMetadataFromObject(object);
+        long long count = psDBDeleteRows(dbh, STACKRUN_TABLE_NAME, where, limit);
         psFree(where);
         if (count < 0) {
-            psError(PS_ERR_UNKNOWN, true, "failed to delete row from p6Run");
+            psError(PS_ERR_UNKNOWN, true, "failed to delete row from stackRun");
             return count;
         }
@@ -16709,5 +16709,5 @@
     return deleted;
 }
-bool p6RunPrintObjects(FILE *stream, psArray *objects, bool mdcf)
+bool stackRunPrintObjects(FILE *stream, psArray *objects, bool mdcf)
 {
     PS_ASSERT_PTR_NON_NULL(objects, false);
@@ -16715,9 +16715,9 @@
     psMetadata *output = psMetadataAlloc();
     for (long i = 0; i < psArrayLength(objects); i++) {
-        psMetadata *md = p6RunMetadataFromObject(objects->data[i]);
+        psMetadata *md = stackRunMetadataFromObject(objects->data[i]);
         if (!psMetadataAddMetadata(
             output,
             PS_LIST_TAIL,
-            P6RUN_TABLE_NAME,
+            STACKRUN_TABLE_NAME,
             PS_META_DUPLICATE_OK,
             NULL,
@@ -16740,9 +16740,9 @@
     return true;
 }
-bool p6RunPrintObject(FILE *stream, p6RunRow *object, bool mdcf)
+bool stackRunPrintObject(FILE *stream, stackRunRow *object, bool mdcf)
 {
     PS_ASSERT_PTR_NON_NULL(object, false);
 
-    psMetadata *md = p6RunMetadataFromObject(object);
+    psMetadata *md = stackRunMetadataFromObject(object);
 
     if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
@@ -16755,38 +16755,38 @@
     return true;
 }
-static void p6InputSkyfileRowFree(p6InputSkyfileRow *object);
-
-p6InputSkyfileRow *p6InputSkyfileRowAlloc(psS32 p6_id, psS32 p4_id)
-{
-    p6InputSkyfileRow *_object;
-
-    _object = psAlloc(sizeof(p6InputSkyfileRow));
-    psMemSetDeallocator(_object, (psFreeFunc)p6InputSkyfileRowFree);
-
-    _object->p6_id = p6_id;
-    _object->p4_id = p4_id;
+static void stackInputSkyfileRowFree(stackInputSkyfileRow *object);
+
+stackInputSkyfileRow *stackInputSkyfileRowAlloc(psS32 stack_id, psS32 warp_id)
+{
+    stackInputSkyfileRow *_object;
+
+    _object = psAlloc(sizeof(stackInputSkyfileRow));
+    psMemSetDeallocator(_object, (psFreeFunc)stackInputSkyfileRowFree);
+
+    _object->stack_id = stack_id;
+    _object->warp_id = warp_id;
 
     return _object;
 }
 
-static void p6InputSkyfileRowFree(p6InputSkyfileRow *object)
-{
-}
-
-bool p6InputSkyfileCreateTable(psDB *dbh)
+static void stackInputSkyfileRowFree(stackInputSkyfileRow *object)
+{
+}
+
+bool stackInputSkyfileCreateTable(psDB *dbh)
 {
     psMetadata *md = psMetadataAlloc();
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p6_id", PS_DATA_S32, "Primary Key", 0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p6_id");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p4_id", PS_DATA_S32, "Primary Key", 0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p4_id");
-        psFree(md);
-        return false;
-    }
-
-    bool status = psDBCreateTable(dbh, P6INPUTSKYFILE_TABLE_NAME, md);
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "stack_id", PS_DATA_S32, "Primary Key", 0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item stack_id");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "warp_id", PS_DATA_S32, "Primary Key", 0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item warp_id");
+        psFree(md);
+        return false;
+    }
+
+    bool status = psDBCreateTable(dbh, STACKINPUTSKYFILE_TABLE_NAME, md);
 
     psFree(md);
@@ -16795,24 +16795,24 @@
 }
 
-bool p6InputSkyfileDropTable(psDB *dbh)
-{
-    return psDBDropTable(dbh, P6INPUTSKYFILE_TABLE_NAME);
-}
-
-bool p6InputSkyfileInsert(psDB * dbh, psS32 p6_id, psS32 p4_id)
+bool stackInputSkyfileDropTable(psDB *dbh)
+{
+    return psDBDropTable(dbh, STACKINPUTSKYFILE_TABLE_NAME);
+}
+
+bool stackInputSkyfileInsert(psDB * dbh, psS32 stack_id, psS32 warp_id)
 {
     psMetadata *md = psMetadataAlloc();
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p6_id", PS_DATA_S32, NULL, p6_id)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p6_id");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p4_id", PS_DATA_S32, NULL, p4_id)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p4_id");
-        psFree(md);
-        return false;
-    }
-
-    bool status = psDBInsertOneRow(dbh, P6INPUTSKYFILE_TABLE_NAME, md);
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "stack_id", PS_DATA_S32, NULL, stack_id)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item stack_id");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "warp_id", PS_DATA_S32, NULL, warp_id)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item warp_id");
+        psFree(md);
+        return false;
+    }
+
+    bool status = psDBInsertOneRow(dbh, STACKINPUTSKYFILE_TABLE_NAME, md);
     psFree(md);
 
@@ -16820,11 +16820,11 @@
 }
 
-long long p6InputSkyfileDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
+long long stackInputSkyfileDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
 {
     long long       deleted = 0;
 
-    long long count = psDBDeleteRows(dbh, P6INPUTSKYFILE_TABLE_NAME, where, limit);
+    long long count = psDBDeleteRows(dbh, STACKINPUTSKYFILE_TABLE_NAME, where, limit);
     if (count < 0) {
-        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p6InputSkyfile");
+        psError(PS_ERR_UNKNOWN, true, "failed to delete row from stackInputSkyfile");
         return count;
 
@@ -16834,13 +16834,13 @@
     return deleted;
 }
-bool p6InputSkyfileInsertObject(psDB *dbh, p6InputSkyfileRow *object)
-{
-    return p6InputSkyfileInsert(dbh, object->p6_id, object->p4_id);
-}
-
-bool p6InputSkyfileInsertObjects(psDB *dbh, psArray *objects)
+bool stackInputSkyfileInsertObject(psDB *dbh, stackInputSkyfileRow *object)
+{
+    return stackInputSkyfileInsert(dbh, object->stack_id, object->warp_id);
+}
+
+bool stackInputSkyfileInsertObjects(psDB *dbh, psArray *objects)
 {
     for (long i = 0; i < psArrayLength(objects); i++) {
-        if (!p6InputSkyfileInsertObject(dbh, objects->data[i])) {
+        if (!stackInputSkyfileInsertObject(dbh, objects->data[i])) {
             return false;
         }
@@ -16850,11 +16850,11 @@
 }
 
-bool p6InputSkyfileInsertFits(psDB *dbh, const psFits *fits)
+bool stackInputSkyfileInsertFits(psDB *dbh, const psFits *fits)
 {
     psArray         *rowSet;
 
-    // move to (the first?) extension named  P6INPUTSKYFILE_TABLE_NAME
-    if (!psFitsMoveExtName(fits, P6INPUTSKYFILE_TABLE_NAME)) {
-        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", P6INPUTSKYFILE_TABLE_NAME);
+    // move to (the first?) extension named  STACKINPUTSKYFILE_TABLE_NAME
+    if (!psFitsMoveExtName(fits, STACKINPUTSKYFILE_TABLE_NAME)) {
+        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", STACKINPUTSKYFILE_TABLE_NAME);
         return false;
     }
@@ -16874,5 +16874,5 @@
     }
 
-    if (!psDBInsertRows(dbh, P6INPUTSKYFILE_TABLE_NAME, rowSet)) {
+    if (!psDBInsertRows(dbh, STACKINPUTSKYFILE_TABLE_NAME, rowSet)) {
         psError(PS_ERR_UNKNOWN, false, "databse insert failed");
         psFree(rowSet);
@@ -16885,9 +16885,9 @@
 }
 
-bool p6InputSkyfileSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
+bool stackInputSkyfileSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
 {
     psArray         *rowSet;
 
-    rowSet = psDBSelectRows(dbh, P6INPUTSKYFILE_TABLE_NAME, where, limit);
+    rowSet = psDBSelectRows(dbh, STACKINPUTSKYFILE_TABLE_NAME, where, limit);
     if (!rowSet) {
         return false;
@@ -16895,5 +16895,5 @@
 
     // output to fits
-    if (!psFitsWriteTable(fits, NULL, rowSet, P6INPUTSKYFILE_TABLE_NAME)) {
+    if (!psFitsWriteTable(fits, NULL, rowSet, STACKINPUTSKYFILE_TABLE_NAME)) {
         psError(PS_ERR_UNKNOWN, false, "FITS table write failed");
         psFree(rowSet);
@@ -16906,14 +16906,14 @@
 }
 
-psMetadata *p6InputSkyfileMetadataFromObject(const p6InputSkyfileRow *object)
+psMetadata *stackInputSkyfileMetadataFromObject(const stackInputSkyfileRow *object)
 {
     psMetadata *md = psMetadataAlloc();
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p6_id", PS_DATA_S32, NULL, object->p6_id)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p6_id");
-        psFree(md);
-        return false;
-    }
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p4_id", PS_DATA_S32, NULL, object->p4_id)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p4_id");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "stack_id", PS_DATA_S32, NULL, object->stack_id)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item stack_id");
+        psFree(md);
+        return false;
+    }
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "warp_id", PS_DATA_S32, NULL, object->warp_id)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item warp_id");
         psFree(md);
         return false;
@@ -16924,22 +16924,22 @@
 }
 
-p6InputSkyfileRow *p6InputSkyfileObjectFromMetadata(psMetadata *md)
+stackInputSkyfileRow *stackInputSkyfileObjectFromMetadata(psMetadata *md)
 {
 
 bool status = false;
-    psS32 p6_id = psMetadataLookupS32(&status, md, "p6_id");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item p6_id");
-        return false;
-    }
-    psS32 p4_id = psMetadataLookupS32(&status, md, "p4_id");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item p4_id");
-        return false;
-    }
-
-    return p6InputSkyfileRowAlloc(p6_id, p4_id);
-}
-psArray *p6InputSkyfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
+    psS32 stack_id = psMetadataLookupS32(&status, md, "stack_id");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item stack_id");
+        return false;
+    }
+    psS32 warp_id = psMetadataLookupS32(&status, md, "warp_id");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item warp_id");
+        return false;
+    }
+
+    return stackInputSkyfileRowAlloc(stack_id, warp_id);
+}
+psArray *stackInputSkyfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
 {
     psArray         *rowSet;
@@ -16947,5 +16947,5 @@
     psU64           i;
 
-    rowSet = psDBSelectRows(dbh, P6INPUTSKYFILE_TABLE_NAME, where, limit);
+    rowSet = psDBSelectRows(dbh, STACKINPUTSKYFILE_TABLE_NAME, where, limit);
     if (!rowSet) {
         return NULL;
@@ -16957,5 +16957,5 @@
 
     for (i = 0; i < rowSet->n; i++) {
-        p6InputSkyfileRow *object = p6InputSkyfileObjectFromMetadata(rowSet->data[i]);
+        stackInputSkyfileRow *object = stackInputSkyfileObjectFromMetadata(rowSet->data[i]);
         psArrayAdd(returnSet, 0, object);
         psFree(object);
@@ -16966,11 +16966,11 @@
     return returnSet;
 }
-bool p6InputSkyfileDeleteObject(psDB *dbh, const p6InputSkyfileRow *object)
-{
-    psMetadata *where = p6InputSkyfileMetadataFromObject(object);
-    long long count = psDBDeleteRows(dbh, P6INPUTSKYFILE_TABLE_NAME, where, 0);
+bool stackInputSkyfileDeleteObject(psDB *dbh, const stackInputSkyfileRow *object)
+{
+    psMetadata *where = stackInputSkyfileMetadataFromObject(object);
+    long long count = psDBDeleteRows(dbh, STACKINPUTSKYFILE_TABLE_NAME, where, 0);
     psFree(where);
     if (count < 0) {
-        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p6InputSkyfile");
+        psError(PS_ERR_UNKNOWN, true, "failed to delete row from stackInputSkyfile");
         return false;
     }
@@ -16978,21 +16978,21 @@
         // XXX should this be a psAbort() instead?  It is possible that
         // having an object match multiple rows was by design.
-        psError(PS_ERR_UNKNOWN, true, "p6InputSkyfileRow object matched more then one row.  Check your database schema");
-        return false;
-    }
-
-    return true;
-}
-long long p6InputSkyfileDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
+        psError(PS_ERR_UNKNOWN, true, "stackInputSkyfileRow object matched more then one row.  Check your database schema");
+        return false;
+    }
+
+    return true;
+}
+long long stackInputSkyfileDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
 {
     long long       deleted = 0;
 
     for (long long i = 0; i < objects->n; i++) {
-        p6InputSkyfileRow *object = objects->data[i];
-        psMetadata *where = p6InputSkyfileMetadataFromObject(object);
-        long long count = psDBDeleteRows(dbh, P6INPUTSKYFILE_TABLE_NAME, where, limit);
+        stackInputSkyfileRow *object = objects->data[i];
+        psMetadata *where = stackInputSkyfileMetadataFromObject(object);
+        long long count = psDBDeleteRows(dbh, STACKINPUTSKYFILE_TABLE_NAME, where, limit);
         psFree(where);
         if (count < 0) {
-            psError(PS_ERR_UNKNOWN, true, "failed to delete row from p6InputSkyfile");
+            psError(PS_ERR_UNKNOWN, true, "failed to delete row from stackInputSkyfile");
             return count;
         }
@@ -17003,5 +17003,5 @@
     return deleted;
 }
-bool p6InputSkyfilePrintObjects(FILE *stream, psArray *objects, bool mdcf)
+bool stackInputSkyfilePrintObjects(FILE *stream, psArray *objects, bool mdcf)
 {
     PS_ASSERT_PTR_NON_NULL(objects, false);
@@ -17009,9 +17009,9 @@
     psMetadata *output = psMetadataAlloc();
     for (long i = 0; i < psArrayLength(objects); i++) {
-        psMetadata *md = p6InputSkyfileMetadataFromObject(objects->data[i]);
+        psMetadata *md = stackInputSkyfileMetadataFromObject(objects->data[i]);
         if (!psMetadataAddMetadata(
             output,
             PS_LIST_TAIL,
-            P6INPUTSKYFILE_TABLE_NAME,
+            STACKINPUTSKYFILE_TABLE_NAME,
             PS_META_DUPLICATE_OK,
             NULL,
@@ -17034,9 +17034,9 @@
     return true;
 }
-bool p6InputSkyfilePrintObject(FILE *stream, p6InputSkyfileRow *object, bool mdcf)
+bool stackInputSkyfilePrintObject(FILE *stream, stackInputSkyfileRow *object, bool mdcf)
 {
     PS_ASSERT_PTR_NON_NULL(object, false);
 
-    psMetadata *md = p6InputSkyfileMetadataFromObject(object);
+    psMetadata *md = stackInputSkyfileMetadataFromObject(object);
 
     if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
@@ -17049,14 +17049,14 @@
     return true;
 }
-static void p6SumSkyfileRowFree(p6SumSkyfileRow *object);
-
-p6SumSkyfileRow *p6SumSkyfileRowAlloc(psS32 p6_id, const char *uri, psF64 bg, psF64 bg_mean_stdev)
-{
-    p6SumSkyfileRow *_object;
-
-    _object = psAlloc(sizeof(p6SumSkyfileRow));
-    psMemSetDeallocator(_object, (psFreeFunc)p6SumSkyfileRowFree);
-
-    _object->p6_id = p6_id;
+static void stackSumSkyfileRowFree(stackSumSkyfileRow *object);
+
+stackSumSkyfileRow *stackSumSkyfileRowAlloc(psS32 stack_id, const char *uri, psF64 bg, psF64 bg_mean_stdev)
+{
+    stackSumSkyfileRow *_object;
+
+    _object = psAlloc(sizeof(stackSumSkyfileRow));
+    psMemSetDeallocator(_object, (psFreeFunc)stackSumSkyfileRowFree);
+
+    _object->stack_id = stack_id;
     _object->uri = psStringCopy(uri);
     _object->bg = bg;
@@ -17066,14 +17066,14 @@
 }
 
-static void p6SumSkyfileRowFree(p6SumSkyfileRow *object)
+static void stackSumSkyfileRowFree(stackSumSkyfileRow *object)
 {
     psFree(object->uri);
 }
 
-bool p6SumSkyfileCreateTable(psDB *dbh)
+bool stackSumSkyfileCreateTable(psDB *dbh)
 {
     psMetadata *md = psMetadataAlloc();
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p6_id", PS_DATA_S32, "Primary Key", 0)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p6_id");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "stack_id", PS_DATA_S32, "Primary Key", 0)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item stack_id");
         psFree(md);
         return false;
@@ -17095,5 +17095,5 @@
     }
 
-    bool status = psDBCreateTable(dbh, P6SUMSKYFILE_TABLE_NAME, md);
+    bool status = psDBCreateTable(dbh, STACKSUMSKYFILE_TABLE_NAME, md);
 
     psFree(md);
@@ -17102,14 +17102,14 @@
 }
 
-bool p6SumSkyfileDropTable(psDB *dbh)
-{
-    return psDBDropTable(dbh, P6SUMSKYFILE_TABLE_NAME);
-}
-
-bool p6SumSkyfileInsert(psDB * dbh, psS32 p6_id, const char *uri, psF64 bg, psF64 bg_mean_stdev)
+bool stackSumSkyfileDropTable(psDB *dbh)
+{
+    return psDBDropTable(dbh, STACKSUMSKYFILE_TABLE_NAME);
+}
+
+bool stackSumSkyfileInsert(psDB * dbh, psS32 stack_id, const char *uri, psF64 bg, psF64 bg_mean_stdev)
 {
     psMetadata *md = psMetadataAlloc();
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p6_id", PS_DATA_S32, NULL, p6_id)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p6_id");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "stack_id", PS_DATA_S32, NULL, stack_id)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item stack_id");
         psFree(md);
         return false;
@@ -17131,5 +17131,5 @@
     }
 
-    bool status = psDBInsertOneRow(dbh, P6SUMSKYFILE_TABLE_NAME, md);
+    bool status = psDBInsertOneRow(dbh, STACKSUMSKYFILE_TABLE_NAME, md);
     psFree(md);
 
@@ -17137,11 +17137,11 @@
 }
 
-long long p6SumSkyfileDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
+long long stackSumSkyfileDelete(psDB *dbh, const psMetadata *where, unsigned long long limit)
 {
     long long       deleted = 0;
 
-    long long count = psDBDeleteRows(dbh, P6SUMSKYFILE_TABLE_NAME, where, limit);
+    long long count = psDBDeleteRows(dbh, STACKSUMSKYFILE_TABLE_NAME, where, limit);
     if (count < 0) {
-        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p6SumSkyfile");
+        psError(PS_ERR_UNKNOWN, true, "failed to delete row from stackSumSkyfile");
         return count;
 
@@ -17151,13 +17151,13 @@
     return deleted;
 }
-bool p6SumSkyfileInsertObject(psDB *dbh, p6SumSkyfileRow *object)
-{
-    return p6SumSkyfileInsert(dbh, object->p6_id, object->uri, object->bg, object->bg_mean_stdev);
-}
-
-bool p6SumSkyfileInsertObjects(psDB *dbh, psArray *objects)
+bool stackSumSkyfileInsertObject(psDB *dbh, stackSumSkyfileRow *object)
+{
+    return stackSumSkyfileInsert(dbh, object->stack_id, object->uri, object->bg, object->bg_mean_stdev);
+}
+
+bool stackSumSkyfileInsertObjects(psDB *dbh, psArray *objects)
 {
     for (long i = 0; i < psArrayLength(objects); i++) {
-        if (!p6SumSkyfileInsertObject(dbh, objects->data[i])) {
+        if (!stackSumSkyfileInsertObject(dbh, objects->data[i])) {
             return false;
         }
@@ -17167,11 +17167,11 @@
 }
 
-bool p6SumSkyfileInsertFits(psDB *dbh, const psFits *fits)
+bool stackSumSkyfileInsertFits(psDB *dbh, const psFits *fits)
 {
     psArray         *rowSet;
 
-    // move to (the first?) extension named  P6SUMSKYFILE_TABLE_NAME
-    if (!psFitsMoveExtName(fits, P6SUMSKYFILE_TABLE_NAME)) {
-        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", P6SUMSKYFILE_TABLE_NAME);
+    // move to (the first?) extension named  STACKSUMSKYFILE_TABLE_NAME
+    if (!psFitsMoveExtName(fits, STACKSUMSKYFILE_TABLE_NAME)) {
+        psError(PS_ERR_UNKNOWN, true, "failed to find FITS extension %s", STACKSUMSKYFILE_TABLE_NAME);
         return false;
     }
@@ -17191,5 +17191,5 @@
     }
 
-    if (!psDBInsertRows(dbh, P6SUMSKYFILE_TABLE_NAME, rowSet)) {
+    if (!psDBInsertRows(dbh, STACKSUMSKYFILE_TABLE_NAME, rowSet)) {
         psError(PS_ERR_UNKNOWN, false, "databse insert failed");
         psFree(rowSet);
@@ -17202,9 +17202,9 @@
 }
 
-bool p6SumSkyfileSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
+bool stackSumSkyfileSelectRowsFits(psDB *dbh, psFits *fits, const psMetadata *where, unsigned long long limit)
 {
     psArray         *rowSet;
 
-    rowSet = psDBSelectRows(dbh, P6SUMSKYFILE_TABLE_NAME, where, limit);
+    rowSet = psDBSelectRows(dbh, STACKSUMSKYFILE_TABLE_NAME, where, limit);
     if (!rowSet) {
         return false;
@@ -17212,5 +17212,5 @@
 
     // output to fits
-    if (!psFitsWriteTable(fits, NULL, rowSet, P6SUMSKYFILE_TABLE_NAME)) {
+    if (!psFitsWriteTable(fits, NULL, rowSet, STACKSUMSKYFILE_TABLE_NAME)) {
         psError(PS_ERR_UNKNOWN, false, "FITS table write failed");
         psFree(rowSet);
@@ -17223,9 +17223,9 @@
 }
 
-psMetadata *p6SumSkyfileMetadataFromObject(const p6SumSkyfileRow *object)
+psMetadata *stackSumSkyfileMetadataFromObject(const stackSumSkyfileRow *object)
 {
     psMetadata *md = psMetadataAlloc();
-    if (!psMetadataAdd(md, PS_LIST_TAIL, "p6_id", PS_DATA_S32, NULL, object->p6_id)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to add item p6_id");
+    if (!psMetadataAdd(md, PS_LIST_TAIL, "stack_id", PS_DATA_S32, NULL, object->stack_id)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to add item stack_id");
         psFree(md);
         return false;
@@ -17251,11 +17251,11 @@
 }
 
-p6SumSkyfileRow *p6SumSkyfileObjectFromMetadata(psMetadata *md)
+stackSumSkyfileRow *stackSumSkyfileObjectFromMetadata(psMetadata *md)
 {
 
 bool status = false;
-    psS32 p6_id = psMetadataLookupS32(&status, md, "p6_id");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item p6_id");
+    psS32 stack_id = psMetadataLookupS32(&status, md, "stack_id");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item stack_id");
         return false;
     }
@@ -17276,7 +17276,7 @@
     }
 
-    return p6SumSkyfileRowAlloc(p6_id, uri, bg, bg_mean_stdev);
-}
-psArray *p6SumSkyfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
+    return stackSumSkyfileRowAlloc(stack_id, uri, bg, bg_mean_stdev);
+}
+psArray *stackSumSkyfileSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
 {
     psArray         *rowSet;
@@ -17284,5 +17284,5 @@
     psU64           i;
 
-    rowSet = psDBSelectRows(dbh, P6SUMSKYFILE_TABLE_NAME, where, limit);
+    rowSet = psDBSelectRows(dbh, STACKSUMSKYFILE_TABLE_NAME, where, limit);
     if (!rowSet) {
         return NULL;
@@ -17294,5 +17294,5 @@
 
     for (i = 0; i < rowSet->n; i++) {
-        p6SumSkyfileRow *object = p6SumSkyfileObjectFromMetadata(rowSet->data[i]);
+        stackSumSkyfileRow *object = stackSumSkyfileObjectFromMetadata(rowSet->data[i]);
         psArrayAdd(returnSet, 0, object);
         psFree(object);
@@ -17303,11 +17303,11 @@
     return returnSet;
 }
-bool p6SumSkyfileDeleteObject(psDB *dbh, const p6SumSkyfileRow *object)
-{
-    psMetadata *where = p6SumSkyfileMetadataFromObject(object);
-    long long count = psDBDeleteRows(dbh, P6SUMSKYFILE_TABLE_NAME, where, 0);
+bool stackSumSkyfileDeleteObject(psDB *dbh, const stackSumSkyfileRow *object)
+{
+    psMetadata *where = stackSumSkyfileMetadataFromObject(object);
+    long long count = psDBDeleteRows(dbh, STACKSUMSKYFILE_TABLE_NAME, where, 0);
     psFree(where);
     if (count < 0) {
-        psError(PS_ERR_UNKNOWN, true, "failed to delete row from p6SumSkyfile");
+        psError(PS_ERR_UNKNOWN, true, "failed to delete row from stackSumSkyfile");
         return false;
     }
@@ -17315,21 +17315,21 @@
         // XXX should this be a psAbort() instead?  It is possible that
         // having an object match multiple rows was by design.
-        psError(PS_ERR_UNKNOWN, true, "p6SumSkyfileRow object matched more then one row.  Check your database schema");
-        return false;
-    }
-
-    return true;
-}
-long long p6SumSkyfileDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
+        psError(PS_ERR_UNKNOWN, true, "stackSumSkyfileRow object matched more then one row.  Check your database schema");
+        return false;
+    }
+
+    return true;
+}
+long long stackSumSkyfileDeleteRowObjects(psDB *dbh, const psArray *objects, unsigned long long limit)
 {
     long long       deleted = 0;
 
     for (long long i = 0; i < objects->n; i++) {
-        p6SumSkyfileRow *object = objects->data[i];
-        psMetadata *where = p6SumSkyfileMetadataFromObject(object);
-        long long count = psDBDeleteRows(dbh, P6SUMSKYFILE_TABLE_NAME, where, limit);
+        stackSumSkyfileRow *object = objects->data[i];
+        psMetadata *where = stackSumSkyfileMetadataFromObject(object);
+        long long count = psDBDeleteRows(dbh, STACKSUMSKYFILE_TABLE_NAME, where, limit);
         psFree(where);
         if (count < 0) {
-            psError(PS_ERR_UNKNOWN, true, "failed to delete row from p6SumSkyfile");
+            psError(PS_ERR_UNKNOWN, true, "failed to delete row from stackSumSkyfile");
             return count;
         }
@@ -17340,5 +17340,5 @@
     return deleted;
 }
-bool p6SumSkyfilePrintObjects(FILE *stream, psArray *objects, bool mdcf)
+bool stackSumSkyfilePrintObjects(FILE *stream, psArray *objects, bool mdcf)
 {
     PS_ASSERT_PTR_NON_NULL(objects, false);
@@ -17346,9 +17346,9 @@
     psMetadata *output = psMetadataAlloc();
     for (long i = 0; i < psArrayLength(objects); i++) {
-        psMetadata *md = p6SumSkyfileMetadataFromObject(objects->data[i]);
+        psMetadata *md = stackSumSkyfileMetadataFromObject(objects->data[i]);
         if (!psMetadataAddMetadata(
             output,
             PS_LIST_TAIL,
-            P6SUMSKYFILE_TABLE_NAME,
+            STACKSUMSKYFILE_TABLE_NAME,
             PS_META_DUPLICATE_OK,
             NULL,
@@ -17371,9 +17371,9 @@
     return true;
 }
-bool p6SumSkyfilePrintObject(FILE *stream, p6SumSkyfileRow *object, bool mdcf)
+bool stackSumSkyfilePrintObject(FILE *stream, stackSumSkyfileRow *object, bool mdcf)
 {
     PS_ASSERT_PTR_NON_NULL(object, false);
 
-    psMetadata *md = p6SumSkyfileMetadataFromObject(object);
+    psMetadata *md = stackSumSkyfileMetadataFromObject(object);
 
     if (!ippdbPrintMetadataRaw(stream, md, mdcf)) {
