diff --git a/src/components/query/QueryIVOARegistry.js b/src/components/query/QueryIVOARegistry.js
index c373f93c039dd2b6eeb538483efd98d140df9848..aefc08cd8da6c455752413265ff55161b912a11f 100644
--- a/src/components/query/QueryIVOARegistry.js
+++ b/src/components/query/QueryIVOARegistry.js
@@ -1,12 +1,13 @@
 import React, { useContext, useEffect } from "react";
 import { useParams } from "react-router-dom";
 import axios from "axios";
-import { Container, Button } from "react-bootstrap";
+import { Container, Button, Row, Col } from "react-bootstrap";
 import Form from "react-jsonschema-form";
 import { GlobalContext } from "../../contexts/GlobalContext";
 import { QueryContext } from "../../contexts/QueryContext";
 import QueryResults from "./QueryResults";
 import parseQueryForm from "../../utils/form/parseQueryForm";
+import { IVOAContext } from "../../contexts/IVOAContext";
 
 export default function QueryIVOARegistry() {
   // queryMap is a map of dictionaries, where each dictionary consists of
@@ -16,6 +17,7 @@ export default function QueryIVOARegistry() {
   //  "results": null}
   const { queryMap, formData, setFormData } = useContext(QueryContext);
   const { config, api_host, setConfigName } = useContext(GlobalContext);
+  const { selectedRegistry } = useContext(IVOAContext);
   const { uri } = useParams();
   console.log("uri:", uri);
 
@@ -59,6 +61,7 @@ export default function QueryIVOARegistry() {
     queries.forEach((query) => {
       queryMap.set(query.catalog, {
         catalog: query.catalog,
+        service_type: query.service_type,
         esapquery: query.esapquery,
         status: "fetching",
         results: null,
@@ -69,6 +72,7 @@ export default function QueryIVOARegistry() {
         .then((queryResponse) => {
           queryMap.set(query.catalog, {
             catalog: query.catalog,
+            service_type: query.service_type,
             esapquery: query.esapquery,
             status: "fetched",
             results: queryResponse.data,
@@ -77,6 +81,7 @@ export default function QueryIVOARegistry() {
         .catch(() => {
           queryMap.set(query.catalog, {
             catalog: query.catalog,
+            service_type: query.service_type,
             esapquery: query.esapquery,
             status: "error",
             results: null,
@@ -135,7 +140,18 @@ export default function QueryIVOARegistry() {
           ];
         return (
           <div key={catalog} className="mt-3">
-            <h4>List of registries</h4>
+            <Row>
+              <Col>
+                <h4>List of registries</h4>
+              </Col>
+              <Col>
+                {selectedRegistry.length === 0 ? (
+                  <></>
+                ) : (
+                  <Button type="submit">Query selected registry</Button>
+                )}
+              </Col>
+            </Row>
             <QueryResults catalog={catalog} />
           </div>
         );
diff --git a/src/components/query/VORegistryResults.js b/src/components/query/VORegistryResults.js
index 828a9ae7670a24aa25c01f894bb8cc982cc28e84..d8481c93430700d4c8ef622cc70a238703f9fa6c 100644
--- a/src/components/query/VORegistryResults.js
+++ b/src/components/query/VORegistryResults.js
@@ -7,12 +7,18 @@ import { IVOAContext } from "../../contexts/IVOAContext";
 
 export default function VORegistryResults({ catalog }) {
   const { queryMap } = useContext(QueryContext);
-  const { registryList, add, remove } = useContext(IVOAContext);
+  const {
+    selectedRegistry,
+    addRegistry,
+    removeRegistry,
+    registryList,
+    setRegistryList,
+  } = useContext(IVOAContext);
   // const [checkAll, setCheckAll] = useState("");
 
   useEffect(() => {
-    console.log("RegistryList:", registryList);
-  }, [registryList]);
+    console.log("Selected Registry:", selectedRegistry);
+  }, [selectedRegistry]);
 
   // useEffect(() => {
   //   console.log("checkAll:", checkAll);
@@ -24,7 +30,10 @@ export default function VORegistryResults({ catalog }) {
   if (queryMap.get(catalog).status === "fetched") {
     if (queryMap.get(catalog).results.results.length === 0)
       return <Alert variant="warning">No matching results found!</Alert>;
+
     console.log("VO Registry results:", queryMap.get(catalog).results.results);
+    setRegistryList(queryMap.get(catalog).results.results);
+    console.log("Registry List:", registryList);
 
     return (
       <>
@@ -40,12 +49,12 @@ export default function VORegistryResults({ catalog }) {
                   //     ? queryMap
                   //         .get(catalog)
                   //         .results.results.map((result) => {
-                  //           add(result.access_url);
+                  //           addRegistry(result.access_url);
                   //         })
                   //     : queryMap
                   //         .get(catalog)
                   //         .results.results.map((result) => {
-                  //           remove(result.access_url);
+                  //           removeRegistry(result.access_url);
                   //         });
                   // }}
                   />
@@ -70,8 +79,8 @@ export default function VORegistryResults({ catalog }) {
                         onChange={(event) => {
                           console.log(event.target.checked);
                           event.target.checked
-                            ? add(result.access_url)
-                            : remove(result.access_url);
+                            ? addRegistry(result.access_url)
+                            : removeRegistry(result.access_url);
                         }}
                       />
                     </InputGroup>
@@ -87,7 +96,7 @@ export default function VORegistryResults({ catalog }) {
             })}
           </tbody>
         </Table>
-        <Paginate />
+        {/* <Paginate /> */}
       </>
     );
   } else {
diff --git a/src/contexts/IVOAContext.js b/src/contexts/IVOAContext.js
index eba8707e13090945b095b033a21600474fd60d29..03a60bee39284cda3e02a8c08afa413e4febf72f 100644
--- a/src/contexts/IVOAContext.js
+++ b/src/contexts/IVOAContext.js
@@ -1,25 +1,30 @@
 import React, { createContext, useState } from "react";
+import useMap from "../hooks/useMap";
 
 export const IVOAContext = createContext();
 
 export function IVOAContextProvider({ children }) {
+  const [selectedRegistry, setSelectedRegistry] = useState([]);
   const [registryList, setRegistryList] = useState([]);
+
   function handleAddRegistry(access_url) {
-    setRegistryList([...registryList, access_url]);
+    setSelectedRegistry([...selectedRegistry, access_url]);
   }
 
   function handleRemoveRegistry(access_url) {
-    const copy = [...registryList];
+    const copy = [...selectedRegistry];
     const index = copy.findIndex((url) => url === access_url);
     copy.splice(index, 1);
-    setRegistryList(copy);
+    setSelectedRegistry(copy);
   }
   return (
     <IVOAContext.Provider
       value={{
+        selectedRegistry,
+        addRegistry: handleAddRegistry,
+        removeRegistry: handleRemoveRegistry,
         registryList,
-        add: handleAddRegistry,
-        remove: handleRemoveRegistry,
+        setRegistryList,
       }}
     >
       {children}
diff --git a/src/utils/form/parseIVOAForm.js b/src/utils/form/parseIVOAForm.js
index 640227870591c5f3dbbcb864355cc7240c5fb2df..e518ff0ccaf91f1b5730b7f98bdc8fe9df92bef7 100644
--- a/src/utils/form/parseIVOAForm.js
+++ b/src/utils/form/parseIVOAForm.js
@@ -22,12 +22,14 @@ export default function ParseIVOAForm(formData) {
   //  "status": "null|fetching|fetched",
   //  "results": null}
   let catalog = formInput.find(([key]) => key === "catalog")[1];
+  let service_type = formInput.find(([key]) => key === "service_type")[1];
 
   let esapquery =
     "get-services/?" + query + `${`${query}` ? "&" : ""}dataset_uri=` + catalog;
 
   queries.push({
     catalog: catalog,
+    service_type: service_type,
     esapquery: esapquery,
   });