diff --git a/data-discovery/src/main/java/vlkb/output/Dataset.java b/data-discovery/src/main/java/vlkb/output/Dataset.java
index 03d29d26332b37f43c23b64c405e7239344119a3..3e47a5ce803239c58b56e8dcc5c410e2bafc7ab7 100644
--- a/data-discovery/src/main/java/vlkb/output/Dataset.java
+++ b/data-discovery/src/main/java/vlkb/output/Dataset.java
@@ -26,6 +26,7 @@ class Dataset
    }
 
 
+   String queryString;// was in Inputs
    String subsurvey_id;
    int overlapCodeSky;
    int overlapCodeVel;
@@ -59,7 +60,7 @@ class Dataset
    }
 
 
-   public Dataset(List<Dataset> datasetList, Inputs inputs, String mergeUrlRoot)
+   public Dataset(List<Dataset> datasetList, AuthPolicy auth, Coord coord, SubsurveyId subsurveyId, boolean countNullValues, String mergeUrlRoot)
    {
       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 +70,9 @@ class Dataset
       this.access = new Access();
       this.access.accessFileUrl   = null;
       this.access.accessCutoutUrl = null;
-      this.access.accessMosaicUrl = mergeUrlRoot + "?pubdid=" + publisherDid + "&amp;" +inputs.queryString;
+      this.access.accessMosaicUrl = mergeUrlRoot + "?pubdid=" + publisherDid + "&amp;" + /*inputs.*/queryString;
 
-      this.vertices_deg = mergeVertices(datasetList, inputs.coord);
+      this.vertices_deg = mergeVertices(datasetList, /*inputs.*/coord);
    }
 
 
diff --git a/data-discovery/src/main/java/vlkb/output/Inputs.java b/data-discovery/src/main/java/vlkb/output/Inputs.java
deleted file mode 100644
index f244b8a5277b20a260ed53c414b5f87c8152e4db..0000000000000000000000000000000000000000
--- a/data-discovery/src/main/java/vlkb/output/Inputs.java
+++ /dev/null
@@ -1,52 +0,0 @@
-
-
-import java.lang.StringBuilder;
-
-
-class Inputs
-{
-   Coord coord;
-   SubsurveyId subsurveyId;
-   boolean countNullValues;
-   AuthPolicy auth;
-
-   String queryString;
-
-   public Inputs(AuthPolicy auth, Coord coord, SubsurveyId subsurveyId, boolean countNullValues)
-   {
-      this.coord = coord;
-      this.subsurveyId = subsurveyId;
-      this.countNullValues = countNullValues;
-      this.auth = auth;
-
-      queryString = buildVoQueryString(coord, subsurveyId, countNullValues);
-      //queryString = buildQueryString(coord, subsurveyId, countNullValues);
-   }
-
-
-   private String buildQueryString(Coord coord, SubsurveyId subsurveyId, boolean countNullValues)
-   {
-      StringBuilder queryString = new StringBuilder();
-
-      queryString.append(coord.toQueryString());
-      if(subsurveyId.surveyName != null) queryString.append("&amp;surveyname=" + subsurveyId.surveyName);
-      if(subsurveyId.species != null) queryString.append("&amp;species=" + subsurveyId.species);
-      if(subsurveyId.transition != null) queryString.append("&amp;transition=" + subsurveyId.transition);
-
-      return queryString.toString();
-   }
-
-   private String buildVoQueryString(Coord coord, SubsurveyId subsurveyId, boolean countNullValues)
-   {
-      StringBuilder queryString = new StringBuilder();
-
-      queryString.append(coord.toVoQueryString());
-      if(subsurveyId.surveyName != null) queryString.append("&surveyname=" + subsurveyId.surveyName);
-      if(subsurveyId.species != null) queryString.append("&species=" + subsurveyId.species);
-      if(subsurveyId.transition != null) queryString.append("&transition=" + subsurveyId.transition);
-
-      return queryString.toString();
-   }
-
-}
-
diff --git a/data-discovery/src/main/java/vlkb/output/SearchOutputData.java b/data-discovery/src/main/java/vlkb/output/SearchOutputData.java
index 5e1b52e9e557918db2c519b6b500bfd6f21d400f..6998a800f9754843ee334501128d8d124d4c34ec 100644
--- a/data-discovery/src/main/java/vlkb/output/SearchOutputData.java
+++ b/data-discovery/src/main/java/vlkb/output/SearchOutputData.java
@@ -7,26 +7,32 @@ class SearchOutputData
    private static final Logger LOGGER = Logger.getLogger("SearchOutputData");
 
    String description;
-   Inputs inputs;
+   AuthPolicy auth;
+   Coord coord;
+   SubsurveyId subsurveyId;
+   boolean countNullValues;
    int datacubeCount;
    String versionString;
    Subsurvey[] subsurveyArr;
 
 
-   public static SearchOutputData  marshall(Dataset[] datasetArr, Inputs inputs, String mergeUrlRoot, Subsurvey[] dbSubsurveys)
+   public static SearchOutputData  marshall(Dataset[] datasetArr, AuthPolicy auth, Coord coord, SubsurveyId subsurveyId, boolean countNullValues, String mergeUrlRoot, Subsurvey[] dbSubsurveys)
    {
       SearchOutputData sod = new SearchOutputData();
 
       sod.description = "Via Lactea Knowledge Base response (Search by pgSphere)";
-      sod.inputs = inputs;
+      sod.auth = auth;
+      sod.coord = coord;
+      sod.subsurveyId = subsurveyId;
+      sod.countNullValues = countNullValues;
       sod.versionString = "Search (pgSphere) version " + Version.asString;
       sod.datacubeCount = datasetArr.length;
 
-      sod.subsurveyArr = groupBySubsurveys(datasetArr, inputs, dbSubsurveys, mergeUrlRoot);
+      sod.subsurveyArr = groupBySubsurveys(datasetArr, auth, coord, subsurveyId, countNullValues, dbSubsurveys, mergeUrlRoot);
       return sod;
    }
 
-   private static Subsurvey[] groupBySubsurveys(Dataset[] datasetArr, Inputs inputs, Subsurvey[] dbSubsurveys, String mergeUrlRoot)
+   private static Subsurvey[] groupBySubsurveys(Dataset[] datasetArr, AuthPolicy auth, Coord coord, SubsurveyId subsurveyId, boolean countNullValues, Subsurvey[] dbSubsurveys, String mergeUrlRoot)
    {
       List<Subsurvey> subsurveyList = new ArrayList<Subsurvey>();
 
@@ -42,7 +48,7 @@ class SearchOutputData
             {
                if( Dataset.areDatasetsMergeable(datasetList) )
                {
-                  Dataset mergedDataset = new Dataset(datasetList, inputs, mergeUrlRoot);
+                  Dataset mergedDataset = new Dataset(datasetList, auth, coord, subsurveyId, countNullValues, mergeUrlRoot);
                   datasetList.add(mergedDataset);
                }
 
@@ -62,7 +68,7 @@ class SearchOutputData
          if( false )
          //if( Dataset.areDatasetsMergeable(datasetList) )
          {
-            Dataset mergedDataset = new Dataset(datasetList, inputs, mergeUrlRoot);
+            Dataset mergedDataset = new Dataset(datasetList, auth, coord, subsurveyId, countNullValues, mergeUrlRoot);
             datasetList.add(mergedDataset);
          }
 
diff --git a/data-discovery/src/main/java/vlkb/output/XmlSerializer.java b/data-discovery/src/main/java/vlkb/output/XmlSerializer.java
index 853980c2573dc19cf76f094f46902528491e9fcb..5a8f8267ef326d0354d625b61a94634b173abd4b 100644
--- a/data-discovery/src/main/java/vlkb/output/XmlSerializer.java
+++ b/data-discovery/src/main/java/vlkb/output/XmlSerializer.java
@@ -177,7 +177,14 @@ public final class XmlSerializer
       writer.println("<?xml version=\"1.0\" encoding=\"" + charEncoding + "\" standalone=\"yes\"?>");
       writer.println("<results>");
       writer.println("<description> " + searchOutputData.description + " </description>");
-      serialize(writer, searchOutputData.inputs);
+
+      writer.println("<inputs>");
+      if(searchOutputData.subsurveyId != null) writer.println(serialize(searchOutputData.subsurveyId));
+      if(searchOutputData.coord       != null) writer.println(serialize(searchOutputData.coord));
+      if(searchOutputData.countNullValues)     writer.println("<nullvals> set </nullvals>");
+      if(searchOutputData.auth        != null) writer.println(serialize(searchOutputData.auth));
+      writer.println("</inputs>");
+
       writer.println("<msg> " + searchOutputData.versionString + " </msg>");
       writer.println("<DatacubeCount> " + searchOutputData.datacubeCount + " </DatacubeCount>");
       for(Subsurvey subsurvey : searchOutputData.subsurveyArr)
@@ -234,16 +241,6 @@ public final class XmlSerializer
    }
 
 
-   public static void serialize(PrintWriter writer, Inputs inputs)
-   {
-      writer.println("<input>");
-      if(inputs.subsurveyId   != null) writer.println(serialize(inputs.subsurveyId));
-      if(inputs.coord       != null) writer.println(serialize(inputs.coord));
-      if(inputs.countNullValues)     writer.println("<nullvals> set </nullvals>");
-      if(inputs.auth        != null) writer.println(serialize(inputs.auth));
-      writer.println("</input>");
-   }
-
    public static void serialize(PrintWriter writer, Subsurvey subsurvey)
    {
       writer.println("<survey>");
diff --git a/data-discovery/src/main/java/vlkb/webapi/FormatResponseFilter.java b/data-discovery/src/main/java/vlkb/webapi/FormatResponseFilter.java
index 5679289ea67aa3e26de674f2f288fa8d2fcaa820..2cf3a879b80e96558afd53a51c1b6a577434f05b 100644
--- a/data-discovery/src/main/java/vlkb/webapi/FormatResponseFilter.java
+++ b/data-discovery/src/main/java/vlkb/webapi/FormatResponseFilter.java
@@ -16,25 +16,31 @@ import java.nio.charset.Charset;
 
 class FormatResponseWrapper extends HttpServletResponseWrapper
 {
-   private SearchDescription search;
+   AuthPolicy auth;
+
+   String[] pubdidArr;
+   Coord coord;
+   SubsurveyId subsurveyId;
+   boolean countNullValues;
+   String queryString; 
+
+
 
    public FormatResponseWrapper(HttpServletResponse response)
    {
       super(response);
-      search = null;
-   }
 
-   public void set(SearchDescription search) { this.search = search;}
-   public SearchDescription get() { return this.search;}
-
-   public void setPubdidArr(String[] pubdidArr) { this.search.pubdidArr = pubdidArr; }
-   public String[] getPubdidArr() { return this.search.pubdidArr; }
+      auth = null;
+      countNullValues = false;
+   }
 
+   public void setPubdidArr(String[] pubdidArr) { this.pubdidArr = pubdidArr; }
+   public String[] getPubdidArr() { return this.pubdidArr; }
 
    public void setAuth(AuthPolicy auth)
    {
-      assert (this.search.inputs.auth != null);
-      this.search.inputs.auth = auth;
+     // assert (this.search.inputs.auth != null);
+      this.auth = auth;
    }
 }
 
@@ -83,18 +89,16 @@ public class FormatResponseFilter implements Filter
          //if (pubdidWrapper.getContentType().contains("text/plain"))
       {
 
-         SearchDescription search = pubdidWrapper.get();
-
          Dataset[] datasetArr = getOutputData(
-               search.pubdidArr,
-               search.inputs.coord,
-               search.inputs.subsurveyId,
-               search.inputs.queryString,
+               pubdidWrapper.getPubdidArr(),
+               pubdidWrapper.coord,
+               pubdidWrapper.subsurveyId,
+               pubdidWrapper.queryString,
                settings.serviceUrls.cutoutUrl());
 
          SearchOutputData searchOutputData = SearchOutputData.marshall(
                datasetArr,
-               search.inputs,
+               pubdidWrapper.auth, pubdidWrapper.coord, pubdidWrapper.subsurveyId, pubdidWrapper.countNullValues,
                settings.serviceUrls.mergeUrl(),
                dbSubsurveyArr);
 
@@ -117,7 +121,7 @@ public class FormatResponseFilter implements Filter
          else
          {
             ; // FIXME throws wrong setting-file param: batter convert string to enum and throw 'unrecoginzed respFormat' then;
-              // here use switch with enums and switch-default: say error: 'unsupported respFromat' type
+            // here use switch with enums and switch-default: say error: 'unsupported respFromat' type
          }
 
          responseWriter.close();
@@ -166,7 +170,7 @@ public class FormatResponseFilter implements Filter
       boolean em_valid;
 
       String o_ucd;
-   
+
       String pol_states;
       Long   pol_xel;
 
@@ -210,6 +214,7 @@ public class FormatResponseFilter implements Filter
 
          dataset.obsDataset = obsDataset;
 
+         dataset.queryString = queryString;
          dataset.subsurvey_id   = obsDataset.obs_collection;
          dataset.overlapCodeSky = convertToOverlapCodeSky(obsDataset.inputInsideDb, obsDataset.dbInsideInput);
          dataset.overlapCodeVel = convertToOverlapCodeVel(coord, obsDataset.em_valid, obsDataset.em_min, obsDataset.em_max);
diff --git a/data-discovery/src/main/java/vlkb/webapi/SearchDescription.java b/data-discovery/src/main/java/vlkb/webapi/SearchDescription.java
deleted file mode 100644
index 5cb4fa242bb81d8500cc6dd882105cc992df4e35..0000000000000000000000000000000000000000
--- a/data-discovery/src/main/java/vlkb/webapi/SearchDescription.java
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-class SearchDescription
-{
-   String[] pubdidArr;
-   Inputs inputs;
-}
diff --git a/data-discovery/src/main/java/vlkb/webapi/SearchServlet.java b/data-discovery/src/main/java/vlkb/webapi/SearchServlet.java
index e7f56a6e69acd5ef4175e3c09ee69092a6d9bc65..6b59ee9a3196cda7589c6297c801cf938b3e7531 100644
--- a/data-discovery/src/main/java/vlkb/webapi/SearchServlet.java
+++ b/data-discovery/src/main/java/vlkb/webapi/SearchServlet.java
@@ -49,8 +49,6 @@ public class SearchServlet extends javax.servlet.http.HttpServlet
          Coord       coord           = new Coord(params);
          SubsurveyId subsurveyId     = new SubsurveyId(params);
 
-         Inputs inputs = new Inputs(/*auth*/null, coord, subsurveyId, false);
-
          /* query Obscore table */
 
          DbPSearch dbps;
@@ -75,12 +73,12 @@ public class SearchServlet extends javax.servlet.http.HttpServlet
 
             /* collect all search description and set to wrapped response */
 
-            SearchDescription search = new SearchDescription();
-            search.pubdidArr = pubdidArr;
-            search.inputs = inputs;
-
             FormatResponseWrapper pubdidWrapper = (FormatResponseWrapper) response;
-            pubdidWrapper.set(search);
+            pubdidWrapper.setPubdidArr(pubdidArr);
+            pubdidWrapper.coord = coord;
+            pubdidWrapper.subsurveyId = subsurveyId;
+            pubdidWrapper.countNullValues = false;// FIXME parse from params
+            // FIXME set here or not ? pubdidWrapper.queryString = ??;
          }
          else
          {