diff --git a/src/components/Router.js b/src/components/Router.js
index eed2ba82fda8017298dfc9f1d1aa44b48ee8a291..fb337f9d5c430a365e9e875381287cdd2af73b63 100644
--- a/src/components/Router.js
+++ b/src/components/Router.js
@@ -15,22 +15,40 @@ const Router = async function (state) {
     const verb = match[1];
     const query = match[2];
     if (verb === '#view/') {
-      const {data, status} = await solrService.get({api: state.config.api}, query);
+      let {data, status} = await solrService.get({api: state.config.api}, query);
       if (status === 200) {
         state.main.doc = data;
+        //Just to avoid extra ajax calls but we can have multiple relationships here
+        if(state.main.doc.record_type_s || state.main.doc.record_type_s === 'Person') {
+          //Removing orcid.org to have better matches
+          state.main.doc.id = state.main.doc.id.replace("https://orcid.org/", "");
+          //state.main.doc.id = encodeURIComponent(state.main.doc.id);
+          //state.main.doc.id = encodeURIComponent(state.main.doc.id);
+          const res = await solrService.search({api: state.config.api}, {
+            start: 0,
+            page: 1,
+            searchParam: 'author_id%3A',
+            text: state.main.doc.id
+          });
+          if (status === 200) {
+            state.main.related = res.data.docs || [];
+          }
+        }
         app.innerHTML = [Header(state), Search(state), ViewDoc(state), Footer(state)].join('');
       } else {
         app.innerHTML = [Header(state), Search(state), ViewError(state), Footer(state)].join('');
       }
     }
     if (verb === '#search/') {
+      //TODO: make this better
       const splits = match[2].split('/');
       const start = splits[0] || state.main.start;
       const page = splits[1] || '';
-      const searchText = splits[2] || '';
+      let searchText = splits[2] || '';
       const {data, status} = await solrService.search({api: state.config.api}, {
         start: start,
         page: page,
+        searchParam: 'main_search%3A',
         text: searchText
       });
       if (status === 200) {
diff --git a/src/components/SolrService.js b/src/components/SolrService.js
index 66c0b00bad39af919252f36f0511b452af4ee3bb..42d50174cb6f1d0b36a74415607787327fe7ca52 100644
--- a/src/components/SolrService.js
+++ b/src/components/SolrService.js
@@ -28,16 +28,16 @@ const SolrService = {
       return {data: {}, status: e.message};
     }
   },
-  search: async function (config, {start: start, page: page, text: text}) {
+  search: async function (config, {start: start, page: page, searchParam: searchParam, text: text}) {
     try {
-      let param = `select?q=main_search%3A`;
+      let param = `select?q=`;
       //Twice encoded, once for html one for solr
-      let data = encodeURIComponent(`${text}`);
-      data = encodeURIComponent(`${text}`);
+      //let data = encodeURIComponent(`${text}`);
+      //data = encodeURIComponent(`${text}`);
       if (text === '' || !text) {
-        data = '*';
+        text = '*';
       }
-      const req = await axios.get(`${config.api}/${param}${data}&start=${start}&page=${page}`);
+      const req = await axios.get(`${config.api}/${param}${searchParam}${text}&start=${start}&page=${page}`);
       if (req.data) {
         return {data: req.data['response'], status: req.status};
       } else {
diff --git a/src/components/views/ViewDoc.js b/src/components/views/ViewDoc.js
index ee503aea0c6e53cbccb3ff6d61f63be910c323fd..fc9b3cba1bc05b9fe1fc48698b003863d0d3e56b 100644
--- a/src/components/views/ViewDoc.js
+++ b/src/components/views/ViewDoc.js
@@ -1,6 +1,7 @@
 const $ = require("jquery");
 const ViewTable = require('./ViewTable');
 const ViewErrorElement = require('./ViewErrorElement');
+const ViewRelated = require('./ViewRelated');
 
 const ViewDoc = function (data) {
 
@@ -11,10 +12,21 @@ const ViewDoc = function (data) {
     const heading = $('<h1>').html(doc.name);
     const desc = $('<p>').html(doc.description);
     const date = $('<p>').html(doc.datePublished);
-
+    const related = $('<div>');
+    if (data.main.related.length > 0) {
+      const relatedInfo = $('<h3>').html('Related Objects');
+      related.append(relatedInfo);
+      const relatedUl = $('<ul>');
+      for (let rel of data.main.related) {
+        const relatedLi = $('<li>');
+        relatedLi.append(ViewRelated(rel));
+        relatedUl.append(relatedLi);
+      }
+      related.append(relatedUl);
+    }
     const fields = ["author"];
 
-    summary.append(heading).append(desc).append(date).append(ViewTable(doc, fields));
+    summary.append(heading).append(desc).append(date).append(ViewTable(doc, fields)).append(related);
     dummy.append(summary);
     return dummy.html();
   } else {
diff --git a/src/components/views/ViewRelated.js b/src/components/views/ViewRelated.js
new file mode 100644
index 0000000000000000000000000000000000000000..4bafe7d3f0d8241e1fdf46f02b67990f99596bfe
--- /dev/null
+++ b/src/components/views/ViewRelated.js
@@ -0,0 +1,7 @@
+const $ = require("jquery");
+
+const ViewRelated = function (data) {
+  return $(`<a href="#view/${data.id}">${data.name}</a>`);
+}
+
+module.exports = ViewRelated;
\ No newline at end of file
diff --git a/src/components/views/ViewSubDoc.js b/src/components/views/ViewSubDoc.js
index e79c43625e115cee15e6076663759ce6243e2b82..372e369eed799382e86e393b811905af823ac5a6 100644
--- a/src/components/views/ViewSubDoc.js
+++ b/src/components/views/ViewSubDoc.js
@@ -4,19 +4,24 @@ const ViewSubDoc = function (ele) {
 
   try {
     if (Array.isArray(ele)) {
-      ele = ele[0];
       const dummy = $('<div>');
-      const sub = $('<div>');
-      const a = $('<a>');
-      ele = JSON.parse(ele);
-      const href = `/#view/${ele['@id']}`;
-      a.attr('href', href);
-      a.attr('title', ele['name']);
-      a.text(ele['name']);
-      a.addClass("link");
-      sub.append(a);
-      dummy.append(sub);
+      const subDocTitle = $('<div>');
+      subDocTitle.html('Author/s');
+      dummy.append(subDocTitle);
+      for (let el of ele) {
+        const div = $('<div>');
+        const a = $('<a>');
+        const sub = JSON.parse(el);
+        const href = `/#view/${sub['@id']}`;
+        a.attr('href', href);
+        a.attr('title', sub['name']);
+        a.text(sub['name']);
+        a.addClass("link");
+        div.append(a);
+        dummy.append(div);
+      }
       return dummy;
+
     } else {
       return ele;
     }
diff --git a/src/index.js b/src/index.js
index 87bd8c624d17cabfec245ddda8eadfdfc3c6fe87..ddba3bee0565a343342b4d818274a8891c37ad00 100644
--- a/src/index.js
+++ b/src/index.js
@@ -36,7 +36,8 @@ let state = {
     page: 1,
     numFound: 0,
     pageSize: 10,
-    searchText: ''
+    searchText: '',
+    related: []
   },
   config: config
 };