diff --git a/data-discovery/src/main/java/vlkb/output/XmlSerializer.java b/data-discovery/src/main/java/vlkb/output/XmlSerializer.java
index 4420c5929cffc84c93895f74748cb8b6d596d523..5b16f145e282296e34a9eb416af9a4307b07d434 100644
--- a/data-discovery/src/main/java/vlkb/output/XmlSerializer.java
+++ b/data-discovery/src/main/java/vlkb/output/XmlSerializer.java
@@ -119,75 +119,79 @@ public final class XmlSerializer
       new ColumnInfo( "description",   String.class, "Descritpion" )
    };
 
-   private static StarTable makeSearchResultsTable(Subsurvey[] ssurv)
+   private static Object[] obscoreRow( Dataset dataset, Subsurvey subsurvey ) 
    {
-      RowListStarTable astro = new RowListStarTable( OBSCORE_COLINFO );
-
-      for(Subsurvey subsurvey : ssurv)
+      return new Object[]
       {
-         for(Dataset dataset : subsurvey.datasetArr)
-         {
-            if(dataset.obsCore == null) continue; // skip mergeable datasets
+         // ObsCore
+         dataset.obsCore.dataproduct_type,//dataset.dataType, 
+            Integer.valueOf( dataset.obsCore.calib_level ),
+            dataset.obsCore.obs_collection,
+            dataset.obsCore.obs_id,
+            dataset.obsCore.obs_publisher_did,
 
-            astro.addRow( new Object[] 
-                  {
-                     // ObsCore
-                     dataset.obsCore.dataproduct_type,//dataset.dataType, 
-                        Integer.valueOf( dataset.obsCore.calib_level ),
-                        dataset.obsCore.obs_collection,
-                        dataset.obsCore.obs_id,
-                        dataset.obsCore.obs_publisher_did,
+            dataset.obsCore.access_url,//dataset.access.accessCutoutUrl,
+            dataset.obsCore.access_format,
+            Long.valueOf( dataset.obsCore.access_estsize ),
 
-                        dataset.obsCore.access_url,//dataset.access.accessCutoutUrl,
-                        dataset.obsCore.access_format,
-                        Long.valueOf( dataset.obsCore.access_estsize ),
+            dataset.obsCore.target_name,
 
-                        dataset.obsCore.target_name,
+            Double.valueOf(dataset.obsCore.s_ra),Double.valueOf(dataset.obsCore.s_dec),
+            Double.valueOf(dataset.obsCore.s_fov),
 
-                        Double.valueOf(dataset.obsCore.s_ra),Double.valueOf(dataset.obsCore.s_dec),
-                        Double.valueOf(dataset.obsCore.s_fov),
+            dataset.obsCore.s_region,
+            Long.valueOf( dataset.obsCore.s_xel1 ), Long.valueOf( dataset.obsCore.s_xel2 ),
+            Double.valueOf(dataset.obsCore.s_resolution),
 
-                        dataset.obsCore.s_region,
-                        Long.valueOf( dataset.obsCore.s_xel1 ), Long.valueOf( dataset.obsCore.s_xel2 ),
-                        Double.valueOf(dataset.obsCore.s_resolution),
+            Double.valueOf(dataset.obsCore.t_min), Double.valueOf(dataset.obsCore.t_max),
+            Double.valueOf(dataset.obsCore.t_exptime), Double.valueOf(dataset.obsCore.t_resolution),
+            Long.valueOf( dataset.obsCore.t_xel ),
 
-                        Double.valueOf(dataset.obsCore.t_min), Double.valueOf(dataset.obsCore.t_max),
-                        Double.valueOf(dataset.obsCore.t_exptime), Double.valueOf(dataset.obsCore.t_resolution),
-                        Long.valueOf( dataset.obsCore.t_xel ),
+            Double.valueOf(dataset.obsCore.em_min), Double.valueOf(dataset.obsCore.em_max),
+            Double.valueOf(dataset.obsCore.em_res_power),
+            Long.valueOf( dataset.obsCore.em_xel ),
 
-                        Double.valueOf(dataset.obsCore.em_min), Double.valueOf(dataset.obsCore.em_max),
-                        Double.valueOf(dataset.obsCore.em_res_power),
-                        Long.valueOf( dataset.obsCore.em_xel ),
+            dataset.obsCore.o_ucd,
 
-                        dataset.obsCore.o_ucd,
+            dataset.obsCore.pol_states,
+            Long.valueOf( dataset.obsCore.pol_xel ),
 
-                        dataset.obsCore.pol_states,
-                        Long.valueOf( dataset.obsCore.pol_xel ),
+            dataset.obsCore.facility_name,
+            dataset.obsCore.instrument_name,
 
-                        dataset.obsCore.facility_name,
-                        dataset.obsCore.instrument_name,
+            // VLKB extensions
+            Integer.valueOf( dataset.overlapCode ),
+            Integer.valueOf( dataset.overlapCodeSky ),
+            Integer.valueOf( dataset.overlapCodeVel ),
 
+            Double.valueOf(dataset.vertices_deg.lon[0]), Double.valueOf(dataset.vertices_deg.lat[0]),
+            Double.valueOf(dataset.vertices_deg.lon[1]), Double.valueOf(dataset.vertices_deg.lat[1]),
+            Double.valueOf(dataset.vertices_deg.lon[2]), Double.valueOf(dataset.vertices_deg.lat[2]),
+            Double.valueOf(dataset.vertices_deg.lon[3]), Double.valueOf(dataset.vertices_deg.lat[3]),
 
-                        // VLKB extensions
-                        Integer.valueOf( dataset.overlapCode ),
-                        Integer.valueOf( dataset.overlapCodeSky ),
-                        Integer.valueOf( dataset.overlapCodeVel ),
+            dataset.access.accessFileUrl,
+            dataset.access.accessCutoutUrl,
+            dataset.access.accessMosaicUrl,
+
+            subsurvey.vel_unit,
+            subsurvey.surveyname,
+            subsurvey.species,
+            subsurvey.transition,
+            subsurvey.description
+      };
+   }
 
-                        Double.valueOf(dataset.vertices_deg.lon[0]), Double.valueOf(dataset.vertices_deg.lat[0]),
-                        Double.valueOf(dataset.vertices_deg.lon[1]), Double.valueOf(dataset.vertices_deg.lat[1]),
-                        Double.valueOf(dataset.vertices_deg.lon[2]), Double.valueOf(dataset.vertices_deg.lat[2]),
-                        Double.valueOf(dataset.vertices_deg.lon[3]), Double.valueOf(dataset.vertices_deg.lat[3]),
+   private static StarTable makeSearchResultsTable(Subsurvey[] ssurv)
+   {
+      RowListStarTable astro = new RowListStarTable( OBSCORE_COLINFO );
 
-                        dataset.access.accessFileUrl,
-                        dataset.access.accessCutoutUrl,
-                        dataset.access.accessMosaicUrl,
+      for(Subsurvey subsurvey : ssurv)
+      {
+         for(Dataset dataset : subsurvey.datasetArr)
+         {
+            if(dataset.obsCore == null) continue; // skip mergeable datasets
 
-                        subsurvey.vel_unit,
-                        subsurvey.surveyname,
-                        subsurvey.species,
-                        subsurvey.transition,
-                        subsurvey.description
-                  });
+            astro.addRow( obscoreRow(dataset, subsurvey) );
          }
       }