diff --git a/data-access/engine/src/vlkb-obscore/src/database/SqlSchema_INSERT.cpp b/data-access/engine/src/vlkb-obscore/src/database/SqlSchema_INSERT.cpp
index 535cc662df56ddb60148c471682f9165461ad3fc..27c8d99f3cdb262c2794bd9f3d6712a41ab50b4e 100644
--- a/data-access/engine/src/vlkb-obscore/src/database/SqlSchema_INSERT.cpp
+++ b/data-access/engine/src/vlkb-obscore/src/database/SqlSchema_INSERT.cpp
@@ -208,7 +208,6 @@ inline void trim(std::string &s) {
 // returns band in wavelen [m]
 double parse_transition(string trans)
 {
-   // Surveys::survTransition "num unit" <-- for images
    string::size_type pos = trans.find(' ');
    std::string num  = trans.substr(0, pos);
    std::string unit = trans.substr(pos+1);
@@ -239,13 +238,17 @@ void SqlSchema_INSERT::appendRow(
       const string& obs_id,
       const string& obs_publisher_did,
 
+      const string& dataproduct_type,
+      const string& o_ucd,
+
       const string& access_url,
       const string& access_format,
       const uintmax_t access_estsize,
 
       const fitsfiles::Hdu& hdu,
-      const Survey& surv,
 
+      const double rest_frequency,
+      const string& auth_policy,
       const string& auth_groups)
 {
    LOG_trace(__func__);
@@ -263,11 +266,11 @@ void SqlSchema_INSERT::appendRow(
    obscoreRow[SqlSchema::obscoreColId::access_format]  = to_sqlstring(access_format);
    obscoreRow[SqlSchema::obscoreColId::access_estsize] = to_string(access_estsize);
 
-   obscoreRow[o_ucd]            = to_sqlstring(surv.oUcd);
-   obscoreRow[dataproduct_type] = to_sqlstring(surv.dataproductType);
+   obscoreRow[SqlSchema::obscoreColId::o_ucd]            = to_sqlstring(o_ucd);
+   obscoreRow[SqlSchema::obscoreColId::dataproduct_type] = to_sqlstring(dataproduct_type);
 
-   obscoreRow[facility_name]   = to_sql_value(hdu.key_values, surv.fitskeyFacilityName);
-   obscoreRow[instrument_name] = to_sql_value(hdu.key_values, surv.fitskeyInstrumentName);
+   obscoreRow[facility_name]   = to_sql_value(hdu.key_values, "TELESCOP");
+   obscoreRow[instrument_name] = to_sql_value(hdu.key_values, "INSTRUME");
    obscoreRow[target_name]     = to_sql_value(hdu.key_values, "OBJECT");
 
    // sky & spectrum
@@ -304,17 +307,15 @@ void SqlSchema_INSERT::appendRow(
    }
    else if(icrsBounds.size() == 2) // 2D images
    {
-      // surv.survTransition "num unit" <-- for images
       try
       {
-         //double val{parse_transition(surv.survTransition)};
          const double SPEED_OF_LIGHT{299792458};// [m/s]
-         double val{SPEED_OF_LIGHT / surv.restFrequency};
+         double val{SPEED_OF_LIGHT / rest_frequency};
          obscoreRow[em_min] = to_string(val); //get_wavelen(EM_PRECISION, hdu.key_values);
       }
       catch(const std::exception&  ex)
       {
-         LOG_STREAM << "parse_transition failed for " << surv.survTransition << endl;
+         LOG_STREAM << "calc em_min failed: " << ex.what() << endl;
          obscoreRow[em_min] = "NULL";
       }
       obscoreRow[em_max] = obscoreRow[em_min];
@@ -366,7 +367,7 @@ void SqlSchema_INSERT::appendRow(
    obscoreRow[polygon_region] = to_sqlstring(region_spoly(icrsVerts));
    obscoreRow[coordinates]    = to_sqlstring("(" + obscoreRow[s_ra] + "," + obscoreRow[s_dec] + ")");
    // authorization
-   obscoreRow[policy]               = to_sqlstring(authPolicyToSQLEnum(surv.authPolicy)) + "::auth_policy";
+   obscoreRow[policy]               = to_sqlstring(authPolicyToSQLEnum(auth_policy)) + "::auth_policy";
    obscoreRow[obscoreColId::groups] = to_sqlstring("{" + auth_groups + "}");
    // ?
    obscoreRow[proposal_id] = "NULL";
diff --git a/data-access/engine/src/vlkb-obscore/src/database/SqlSchema_INSERT.hpp b/data-access/engine/src/vlkb-obscore/src/database/SqlSchema_INSERT.hpp
index e42963b7190c1f194dfda565739cfc47a68c46a0..c37861b3486b425760e70a934e92013a846996eb 100644
--- a/data-access/engine/src/vlkb-obscore/src/database/SqlSchema_INSERT.hpp
+++ b/data-access/engine/src/vlkb-obscore/src/database/SqlSchema_INSERT.hpp
@@ -5,7 +5,6 @@
 #include <vector>
 
 #include "SqlSchema.hpp"
-#include "SqlSurvey.hpp"
 
 #include "fitsfiles.hpp" // Hdu needed
 #include "ObsCoreKeys.hpp"
@@ -33,14 +32,19 @@ class SqlSchema_INSERT : public SqlSchema
             const std::string& obs_id,
             const std::string& obs_publisher_did,
             // optional
+            const std::string& dataproduct_type,
+            const std::string& o_ucd,
+
             const std::string& access_url,
             const std::string& access_format,
             const uintmax_t access_estsize,
-            // optional
-            const fitsfiles::Hdu& hdu,  // header
-            const Survey& surv,         // metadata
-            // optional
-            const std::string& auth_groups); // security
+
+            const fitsfiles::Hdu& hdu,
+
+            // vlkb extra
+            const double rest_frequency,
+            const std::string& auth_policy,
+            const std::string& auth_groups);
 
 
       std::vector<std::string> getINSERT(void);
diff --git a/data-access/engine/src/vlkb-obscore/src/database/database.cpp b/data-access/engine/src/vlkb-obscore/src/database/database.cpp
index 7f08d6c51fc2de0739fc124a292030d151cabcf1..a4a78be91c2534ea438907fa0464e4020b88d329 100644
--- a/data-access/engine/src/vlkb-obscore/src/database/database.cpp
+++ b/data-access/engine/src/vlkb-obscore/src/database/database.cpp
@@ -320,8 +320,12 @@ void database::dbAddSurvey(int sid, const string groups,
                   obs_collection,
                   obs_id,
                   obs_publisher_did,
+                  surv.dataproductType,
+                  surv.oUcd,
                   access_url, access_format, access_estsize,
-                  hdu, surv,
+                  hdu,
+                  surv.restFrequency,
+                  surv.authPolicy,
                   groups);
          }
       }