diff --git a/data-discovery/src/main/java/vlkb/output/Dataset.java b/data-discovery/src/main/java/vlkb/output/Dataset.java
index ef110679f34514ec0b0b2d1acc719adc3b0fb0eb..015f291a19d0f09757906b21c42155ce810a7895 100644
--- a/data-discovery/src/main/java/vlkb/output/Dataset.java
+++ b/data-discovery/src/main/java/vlkb/output/Dataset.java
@@ -59,7 +59,7 @@ class Dataset
    }
 
 
-   public Dataset(List<Dataset> datasetList, AuthPolicy auth, Coord coord, SubsurveyId subsurveyId, String mergeUrlRoot)
+   public Dataset(List<Dataset> datasetList, AuthPolicy auth, /*Coord coord,*/ SubsurveyId subsurveyId, String mergeUrlRoot, String mergeQueryString)
    {
       this.subsurvey_id = datasetList.get(0).subsurvey_id; // mergeabiity condition is more then 1 element in list
       this.overlapCode  = 5; // 5: exact match --> legacy used 0 here FIXME 5 will not be correct on edges of Subsurvey coverage
@@ -69,9 +69,9 @@ class Dataset
       this.access = new Access();
       this.access.accessFileUrl   = null;
       this.access.accessCutoutUrl = null;
-      this.access.accessMosaicUrl = mergeUrlRoot + "?pubdid=" + publisherDid + "&amp;" + coord.toVoQueryString();
+      this.access.accessMosaicUrl = mergeUrlRoot + "?pubdid=" + publisherDid + "&" + mergeQueryString;// coord.toVoQueryString();
 
-      this.vertices_deg = mergeVertices(datasetList, /*inputs.*/coord);
+      //this.vertices_deg = mergeVertices(datasetList, /*inputs.*/coord);
    }
 
 
@@ -103,7 +103,7 @@ class Dataset
       return sb.toString();
    }
 
-
+/*
    private Vertices mergeVertices(List<Dataset> datasetList, Coord coord)
    {
       // FIXME for now simply return input defined rectangle vertices
@@ -139,6 +139,6 @@ class Dataset
 
       return vert;
    }
-
+*/
 }
 
diff --git a/data-discovery/src/main/java/vlkb/output/SearchOutputData.java b/data-discovery/src/main/java/vlkb/output/SearchOutputData.java
index 1a083648c0e23e28eb7cf40465d18e30b129f547..08e0ae76aa65e43279ddf98f8e413ac668e54ca7 100644
--- a/data-discovery/src/main/java/vlkb/output/SearchOutputData.java
+++ b/data-discovery/src/main/java/vlkb/output/SearchOutputData.java
@@ -15,7 +15,8 @@ class SearchOutputData
    Subsurvey[] subsurveyArr;
 
 
-   public static SearchOutputData  marshall(Dataset[] datasetArr, AuthPolicy auth, Coord coord, SubsurveyId subsurveyId, String mergeUrlRoot, Subsurvey[] dbSubsurveys)
+   public static SearchOutputData  marshall(Dataset[] datasetArr, AuthPolicy auth, Coord coord, SubsurveyId subsurveyId,
+         String mergeUrlRoot, String mergeQueryString, Subsurvey[] dbSubsurveys)
    {
       SearchOutputData sod = new SearchOutputData();
 
@@ -26,11 +27,13 @@ class SearchOutputData
       sod.versionString = "Search (pgSphere) version " + Version.asString;
       sod.datacubeCount = datasetArr.length;
 
-      sod.subsurveyArr = groupBySubsurveys(datasetArr, auth, coord, subsurveyId, dbSubsurveys, mergeUrlRoot);
+      sod.subsurveyArr = groupBySubsurveys(datasetArr, auth, subsurveyId, dbSubsurveys, mergeUrlRoot, mergeQueryString);
       return sod;
    }
 
-   private static Subsurvey[] groupBySubsurveys(Dataset[] datasetArr, AuthPolicy auth, Coord coord, SubsurveyId subsurveyId, Subsurvey[] dbSubsurveys, String mergeUrlRoot)
+   private static Subsurvey[] groupBySubsurveys(Dataset[] datasetArr,
+         AuthPolicy auth, SubsurveyId subsurveyId, Subsurvey[] dbSubsurveys,
+         String mergeUrlRoot, String mergeQueryString)
    {
       List<Subsurvey> subsurveyList = new ArrayList<Subsurvey>();
 
@@ -46,7 +49,7 @@ class SearchOutputData
             {
                if( Dataset.areDatasetsMergeable(datasetList) )
                {
-                  Dataset mergedDataset = new Dataset(datasetList, auth, coord, subsurveyId, mergeUrlRoot);
+                  Dataset mergedDataset = new Dataset(datasetList, auth, subsurveyId, mergeUrlRoot, mergeQueryString);
                   datasetList.add(mergedDataset);
                }
 
@@ -65,7 +68,7 @@ class SearchOutputData
 
          if( Dataset.areDatasetsMergeable(datasetList) )
          {
-            Dataset mergedDataset = new Dataset(datasetList, auth, coord, subsurveyId, mergeUrlRoot);
+            Dataset mergedDataset = new Dataset(datasetList, auth, subsurveyId, mergeUrlRoot, mergeQueryString);
             datasetList.add(mergedDataset);
          }
 
diff --git a/data-discovery/src/main/java/vlkb/webapi/FormatResponseFilter.java b/data-discovery/src/main/java/vlkb/webapi/FormatResponseFilter.java
index 9b5e276a37a962d85da20e5e8f130d41fe625c33..4078d763fa7c647b39de14902b25d6a613a17a2e 100644
--- a/data-discovery/src/main/java/vlkb/webapi/FormatResponseFilter.java
+++ b/data-discovery/src/main/java/vlkb/webapi/FormatResponseFilter.java
@@ -98,22 +98,26 @@ public class FormatResponseFilter implements Filter
          SubsurveyId subsurveyId      = new SubsurveyId(params);
          // FIXME add invalid param excpetions -> params already parsed in servlet
 
-         Dataset[] datasetArr = queryObsCore(
-               pubdidArr,
-               coord,// VLKB: calc ovelrap-codes
-               settings.serviceUrls.cutoutUrl());
+         ObsCore[] obsCoreArr = queryObsCore(pubdidArr,
+               coord); // VLKB: calc overlap-code for sky
+
+         Dataset[] datasetArr = convert(obsCoreArr,
+               coord, // VLKB: calc overlap-code for velocity
+               settings.serviceUrls.cutoutUrl(),
+               coord.toVoQueryString());
 
          SearchOutputData searchOutputData = SearchOutputData.marshall(
                datasetArr,
                responseWrapper.auth,
-               coord, // VLKB: calc Vertices
+               coord, // VLKB: only for xml VLKB-legacy <input> tag 
                subsurveyId,
                settings.serviceUrls.mergeUrl(),
+               coord.toVoQueryString(),
                dbSubsurveyArr);
 
          final String respFormat = settings.serviceUrls.responseFormat();
          LOGGER.info("responseFormat: " + respFormat);
-         
+
          response.setCharacterEncoding(RESPONSE_ENCODING);
 
          if(respFormat.equals("application/x-vlkb+xml"))
@@ -203,7 +207,7 @@ public class FormatResponseFilter implements Filter
 
 
 
-   private Dataset[] queryObsCore(String[] pubdidArr, Coord coord, String fitsRemotePath)
+   private FormatResponseFilter.ObsCore[] queryObsCore(String[] pubdidArr, Coord coord)//, String fitsRemotePath)
    {
       LOGGER.info("trace");
 
@@ -213,16 +217,17 @@ public class FormatResponseFilter implements Filter
          dbps = new DbPSearch();
       }
 
-      FormatResponseFilter.ObsCore[] obsCoreArr = dbps.queryOutputData(pubdidArr, coord);
-
-      return convert(obsCoreArr, coord, fitsRemotePath);
+      return dbps.queryOutputData(pubdidArr, coord);
+      //FormatResponseFilter.ObsCore[] obsCoreArr = dbps.queryOutputData(pubdidArr, coord);
+      //return convert(obsCoreArr, coord, fitsRemotePath);
    }
 
 
 
 
 
-   private Dataset[] convert(FormatResponseFilter.ObsCore[] obsCoreArr, Coord coord, String fitsRemotePath)
+   private Dataset[] convert(FormatResponseFilter.ObsCore[] obsCoreArr, Coord coord,
+         String cutoutUrlRoot, String cutoutQueryString)
    {
       List<Dataset> datasetList  = new ArrayList<Dataset>();
 
@@ -240,8 +245,7 @@ public class FormatResponseFilter implements Filter
          dataset.publisherDid   = obsCore.obs_publisher_did;
 
          dataset.access.accessFileUrl   = obsCore.access_url;
-         dataset.access.accessCutoutUrl = fitsRemotePath + "?ID=" + dataset.publisherDid + "&" + coord.toVoQueryString();
-         //dataset.access.accessCutoutUrl = fitsRemotePath + "?pubdid=" + dataset.publisherDid + "&amp;" + queryString;
+         dataset.access.accessCutoutUrl = cutoutUrlRoot + "?ID=" + dataset.publisherDid + "&" + cutoutQueryString;
          dataset.access.accessMosaicUrl  = null;
 
          dataset.vertices_deg = convertToVertices(obsCore.vertices_str);