diff --git a/app/corpora/routes.py b/app/corpora/routes.py
index 47fadaf6d2e89b44ccd9fc48f633d2f706338d85..1535f8347bd90f6e18879de5d5e50a1aa3c36700 100644
--- a/app/corpora/routes.py
+++ b/app/corpora/routes.py
@@ -71,7 +71,8 @@ def corpus(corpus_id):
             users = users
         )
     if (current_user.is_following_corpus(corpus) or corpus.is_public):
-        cfas = CorpusFollowerAssociation.query.filter(Corpus.id == corpus_id, CorpusFollowerAssociation.follower_id != current_user.id, CorpusFollowerAssociation. follower_id != corpus.user.id).all()
+        cfas = CorpusFollowerAssociation.query.filter(Corpus.id == corpus_id, CorpusFollowerAssociation.follower_id != corpus.user.id).all()
+        print(cfas)
         return render_template(
             'corpora/public_corpus.html.j2',
             title=corpus.title,
diff --git a/app/services/forms.py b/app/services/forms.py
index 01b1cdd824722c0aecbfa700b527f7338a6f5342..174bdb719626955d55d2ae8e0b3e2e16b8ca57c6 100644
--- a/app/services/forms.py
+++ b/app/services/forms.py
@@ -168,12 +168,18 @@ class CreateSpacyNLPPipelineJobForm(CreateJobBaseForm):
         if 'methods' in service_info:
             if 'encoding_detection' in service_info['methods']:
                 del self.encoding_detection.render_kw['disabled']
+        user_models = [
+            x for x in current_user.spacy_nlp_pipeline_models.order_by(SpaCyNLPPipelineModel.title).all()
+        ]
         models = [
-            x for x in SpaCyNLPPipelineModel.query.order_by(SpaCyNLPPipelineModel.title).all()
-            if version in x.compatible_service_versions and (x.is_public == True or x.user == current_user)
+            x for x in SpaCyNLPPipelineModel.query.filter(SpaCyNLPPipelineModel.user != current_user, SpaCyNLPPipelineModel.is_public == True).order_by(SpaCyNLPPipelineModel.title).all()
+            if version in x.compatible_service_versions
         ]
-        self.model.choices = [('', 'Choose your option')]
-        self.model.choices += [(x.hashid, f'{x.title} [{x.version}]') for x in models]
+        self.model.choices = {
+            '': [('', 'Choose your option')],
+            'Your models': [(x.hashid, f'{x.title} [{x.version}]') for x in user_models],
+            'Public models': [(x.hashid, f'{x.title} [{x.version}]') for x in models]
+        }
         self.model.default = ''
         self.version.choices = [(x, x) for x in service_manifest['versions']]
         self.version.data = version
diff --git a/app/static/js/ResourceLists/CorpusFollowerList.js b/app/static/js/ResourceLists/CorpusFollowerList.js
index 975e69c16604d75a0f3abea2065cb7b10924a680..9db964c11368203726fa3a0dee3c375180e29781 100644
--- a/app/static/js/ResourceLists/CorpusFollowerList.js
+++ b/app/static/js/ResourceLists/CorpusFollowerList.js
@@ -23,8 +23,9 @@ class CorpusFollowerList extends ResourceList {
     });
     app.getUser(this.userId).then((user) => {
       let corpusFollowerAssociations = Object.values(user.corpora[this.corpusId].corpus_follower_associations);
-      let filteredList = corpusFollowerAssociations.filter(association => association.follower.id != currentUserId);
-      this.add(filteredList);
+      // let filteredList = corpusFollowerAssociations.filter(association => association.follower.id != currentUserId);
+      // this.add(filteredList);
+      this.add(Object.values(user.corpora[this.corpusId].corpus_follower_associations));
       this.isInitialized = true;
     });
   }
@@ -42,7 +43,7 @@ class CorpusFollowerList extends ResourceList {
           </td>
           <td>
             <div class="input-field disable-on-click list-action-trigger" data-list-action="update-role">
-              <select>
+              <select ${values['user_id'] === currentUserId ? 'disabled' : ''}>
                 <option value="Viewer" ${values['role-name'] === 'Viewer' ? 'selected' : ''}>Viewer</option>
                 <option value="Contributor" ${values['role-name'] === 'Contributor' ? 'selected' : ''}>Contributor</option>
                 <option value="Administrator" ${values['role-name'] === 'Administrator' ? 'selected' : ''}>Administrator</option>
diff --git a/app/static/js/ResourceLists/PublicCorpusList.js b/app/static/js/ResourceLists/PublicCorpusList.js
index c02d54f061b7de7aedf27b02076f4006a4d10534..4b5f5ecbe7b67637ff5d901d4d97c764f085b783 100644
--- a/app/static/js/ResourceLists/PublicCorpusList.js
+++ b/app/static/js/ResourceLists/PublicCorpusList.js
@@ -2,14 +2,37 @@ class PublicCorpusList extends CorpusList {
   get item() {
     return `
       <tr class="list-item clickable hoverable">
-        <td><a class="btn-floating disabled"><i class="material-icons service-color darken" data-service="corpus-analysis">book</i></a></td>
         <td><b class="title"></b><br><i class="description"></i></td>
         <td><span class="owner"></span></td>
-        <td><span class="status badge new corpus-status-color corpus-status-text" data-badge-caption=""></span></td>
         <td class="right-align">
           <a class="list-action-trigger btn-floating service-color darken waves-effect waves-light" data-list-action="view" data-service="corpus-analysis"><i class="material-icons">send</i></a>
         </td>
       </tr>
     `.trim();
   }
+
+  initListContainerElement() {
+    if (!this.listContainerElement.hasAttribute('id')) {
+      this.listContainerElement.id = Utils.generateElementId('corpus-list-');
+    }
+    let listSearchElementId = Utils.generateElementId(`${this.listContainerElement.id}-search-`);
+    this.listContainerElement.innerHTML = `
+      <div class="input-field">
+        <i class="material-icons prefix">search</i>
+        <input id="${listSearchElementId}" class="search" type="text"></input>
+        <label for="${listSearchElementId}">Search Corpus</label>
+      </div>
+      <table>
+        <thead>
+          <tr>
+            <th>Title and Description</th>
+            <th>Owner</th>
+            <th></th>
+          </tr>
+        </thead>
+        <tbody class="list"></tbody>
+      </table>
+      <ul class="pagination"></ul>
+    `.trim();
+  }
 }
diff --git a/app/templates/_scripts.html.j2 b/app/templates/_scripts.html.j2
index bee5b7b2fd7deb75f64a8cff9af4f3e9840505c7..f3b1800334672034d68ae091d814ee3f55df8770 100644
--- a/app/templates/_scripts.html.j2
+++ b/app/templates/_scripts.html.j2
@@ -85,7 +85,13 @@
   for (let optionElement of document.querySelectorAll('option[value=""]')) {
     optionElement.disabled = true;
   }
-
+  for (let optgroupElement of document.querySelectorAll('optgroup[label=""]')) {
+    for (let c of optgroupElement.children) {
+      optgroupElement.parentElement.insertAdjacentElement('afterbegin', c);
+    }
+    optgroupElement.remove();
+    
+  }
   // Set the data-length attribute on textareas/inputs with the maxlength attribute
   for (let inputElement of document.querySelectorAll('textarea[maxlength], input[maxlength]')) {
     inputElement.dataset.length = inputElement.getAttribute('maxlength');
diff --git a/app/templates/corpora/public_corpus.html.j2 b/app/templates/corpora/public_corpus.html.j2
index 6ace0f7a26d4b855d991e558eccc6a8dfd855350..e8512189773e20729434769fa0e82a4c1daab1b8 100644
--- a/app/templates/corpora/public_corpus.html.j2
+++ b/app/templates/corpora/public_corpus.html.j2
@@ -8,6 +8,9 @@
   <div class="row">
     <div class="col s12">
       <h1>{{ corpus.title }}</h1>
+      {% for cfa in cfas %}
+      {{ cfa.follower.username|tojson }},
+      {% endfor %}
     </div>
     <div class="col s12 l7">
       <div class="card service-color-border border-darken" data-service="corpus-analysis" style="border-top: 10px solid">
diff --git a/app/templates/users/user.html.j2 b/app/templates/users/user.html.j2
index bdd6ed75d77a43668af76065b4260e0d233cc5a8..238edd7eaf2ffc518186227de85a6be3bf6dafcc 100644
--- a/app/templates/users/user.html.j2
+++ b/app/templates/users/user.html.j2
@@ -126,7 +126,7 @@ let followedCorpusList = new PublicCorpusList(document.querySelector('.followed-
 followedCorpusList.add(
   [
     {% for corpus in user.followed_corpora %}
-      {% if (corpus.is_public or corpus.user == current_user) %}
+      {% if (corpus.is_public or corpus.user == current_user or user == current_user or current_user.is_following_corpus(corpus)) %}
       {{ corpus.to_json_serializeable(backrefs=True)|tojson }},
       {% endif %}
     {% endfor %}