diff --git a/app/corpora/routes.py b/app/corpora/routes.py
index 25c5228f35fcb617b55c725673ad7f445c3251cb..47fadaf6d2e89b44ccd9fc48f633d2f706338d85 100644
--- a/app/corpora/routes.py
+++ b/app/corpora/routes.py
@@ -54,7 +54,6 @@ def corpus(corpus_id):
     # TODO: Better solution for filtering admin
     users = User.query.filter(User.is_public == True, User.id != current_user.id, User.id != corpus.user.id, User.role_id < 4).all()
     cfa = CorpusFollowerAssociation.query.filter_by(corpus_id=corpus_id, follower_id=current_user.id).first()
-    cfas = CorpusFollowerAssociation.query.filter_by(corpus_id=corpus_id).all()
     if cfa is None:
         if corpus.user == current_user or current_user.is_administrator():
             cfr = CorpusFollowerRole.query.filter_by(name='Administrator').first()
@@ -72,7 +71,7 @@ def corpus(corpus_id):
             users = users
         )
     if (current_user.is_following_corpus(corpus) or corpus.is_public):
-        cfas = CorpusFollowerAssociation.query.filter_by(corpus_id=corpus_id).all()
+        cfas = CorpusFollowerAssociation.query.filter(Corpus.id == corpus_id, CorpusFollowerAssociation.follower_id != current_user.id, CorpusFollowerAssociation. follower_id != corpus.user.id).all()
         return render_template(
             'corpora/public_corpus.html.j2',
             title=corpus.title,
@@ -80,7 +79,6 @@ def corpus(corpus_id):
             cfrs=cfrs,
             cfr=cfr,
             cfas=cfas,
-            cfa=cfa,
             users = users
         )
     abort(403)
diff --git a/app/static/js/ResourceLists/CorpusFileList.js b/app/static/js/ResourceLists/CorpusFileList.js
index ac87e8e57137c071918f0c5afc02fb78fa75a2a7..06f2f6f9ab29851a74514c61e8f1c8b6ff8a12ef 100644
--- a/app/static/js/ResourceLists/CorpusFileList.js
+++ b/app/static/js/ResourceLists/CorpusFileList.js
@@ -152,7 +152,14 @@ class CorpusFileList extends ResourceList {
         );
         let confirmElement = modalElement.querySelector('.action-button[data-action="confirm"]');
         confirmElement.addEventListener('click', (event) => {
-          Requests.corpora.entity.files.ent.delete(this.corpusId, itemId);
+          if (currentUserId != this.userId) {
+            Requests.corpora.entity.files.ent.delete(this.corpusId, itemId)
+            .then(() => {
+              window.location.reload();
+            });
+          } else {
+            Requests.corpora.entity.followers.entity.delete(this.corpusId, followerId);
+          }
         });
         modal.open();
         break;
diff --git a/app/static/js/ResourceLists/CorpusFollowerList.js b/app/static/js/ResourceLists/CorpusFollowerList.js
index 585c3633aaf865b06813cf91ac61854ce17dce07..975e69c16604d75a0f3abea2065cb7b10924a680 100644
--- a/app/static/js/ResourceLists/CorpusFollowerList.js
+++ b/app/static/js/ResourceLists/CorpusFollowerList.js
@@ -142,7 +142,14 @@ class CorpusFollowerList extends ResourceList {
     switch (listAction) {
       case 'unfollow-request': {
         let followerId = listItemElement.dataset.followerId;
-        Requests.corpora.entity.followers.entity.delete(this.corpusId, followerId);
+        if (currentUserId != this.userId) {
+          Requests.corpora.entity.followers.entity.delete(this.corpusId, followerId)
+            .then(() => {
+              window.location.reload();
+            });
+        } else {
+          Requests.corpora.entity.followers.entity.delete(this.corpusId, followerId);
+        }
         break;
       }
       case 'view': {
diff --git a/app/templates/corpora/_corpus/action_buttons.html.j2 b/app/templates/corpora/_corpus/action_buttons.html.j2
deleted file mode 100644
index c2c53e3c1032475388a33a83624798a90b725ee9..0000000000000000000000000000000000000000
--- a/app/templates/corpora/_corpus/action_buttons.html.j2
+++ /dev/null
@@ -1,30 +0,0 @@
-{% set owner_admin %}
-  <div class="col s12 l6" style="padding: 0 2.5px;">
-    <a class="action-button btn disabled waves-effect waves-light" data-action="build-request" style="width: 100%;"><i class="nopaque-icons left">K</i>Build</a>
-  </div>
-  <div class="col s12 l6" style="padding: 0 2.5px;">
-    <a class="action-button btn disabled waves-effect waves-light" data-action="analyze" href="{{ url_for('corpora.analysis', corpus_id=corpus.id) }}" style="width: 100%;"><i class="material-icons left">search</i>Analyze</a>
-  </div>
-  <div class="col s12 l6" style="padding: 5px 2.5px 0 2.5px;">
-    <a class="btn waves-effect waves-light modal-trigger" href="#publishing-modal" style="width: 100%;"><i class="material-icons left">publish</i>Publishing</a>
-  </div>
-  <div class="col s12 l6" style="padding: 5px 2.5px 0 2.5px;">
-    <a class="btn red waves-effect waves-light modal-trigger" href="#delete-modal" style="width: 100%;"><i class="material-icons left">delete</i>Delete</a>
-  </div>
-{% endset %}
-
-{% set follower %}
-  {% if cfr.has_permission('MANAGE_FILES') %}
-  <div class="col s12 l6" style="padding: 0 2.5px;">
-    <a class="action-button btn disabled waves-effect waves-light" data-action="build-request" style="width: 100%;"><i class="nopaque-icons left">K</i>Build</a>
-  </div>
-  <div class="col s12 l6" style="padding: 0 2.5px;">
-    <a class="action-button btn disabled waves-effect waves-light" data-action="analyze" href="{{ url_for('corpora.analysis', corpus_id=corpus.id) }}" style="width: 100%;"><i class="material-icons left">search</i>Analyze</a>
-  </div>
-  {% endif %}
-  {% if current_user.is_following_corpus(corpus) %}
-  <div class="col s12 l6" style="padding: 5px 2.5px 0 2.5px;">
-    <a class="action-button btn red waves-effect waves-light" data-action="unfollow-request" style="width: 100%;"><i class="material-icons left outlined">close</i>Unfollow Corpus</a>
-  </div>
-  {% endif %}
-{% endset %}
diff --git a/app/templates/corpora/corpus.html.j2 b/app/templates/corpora/corpus.html.j2
index 470274b5a72685fee94eea12b8d745d236e474e0..2e38b88d3948975e1ab018f6537671db708f4d9e 100644
--- a/app/templates/corpora/corpus.html.j2
+++ b/app/templates/corpora/corpus.html.j2
@@ -1,6 +1,5 @@
 {% extends "base.html.j2" %}
 {% import "materialize/wtf.html.j2" as wtf %}
-{% import "corpora/_corpus/action_buttons.html.j2" as action_buttons with context %}
 
 {% block main_attribs %} class="service-scheme" data-service="corpus-analysis"{% endblock main_attribs %}
 
@@ -60,11 +59,18 @@
         <div class="card-content">
           <span class="card-title">Actions</span>
           <div class="row">
-          {% if current_user == corpus.user or current_user.is_administrator() %}
-            {{ action_buttons.owner_admin }}
-          {% else %}
-            {{ action_buttons.follower }}
-          {% endif %}
+            <div class="col s12 l6" style="padding: 0 2.5px;">
+              <a class="action-button btn disabled waves-effect waves-light" data-action="build-request" style="width: 100%;"><i class="nopaque-icons left">K</i>Build</a>
+            </div>
+            <div class="col s12 l6" style="padding: 0 2.5px;">
+              <a class="action-button btn disabled waves-effect waves-light" data-action="analyze" href="{{ url_for('corpora.analysis', corpus_id=corpus.id) }}" style="width: 100%;"><i class="material-icons left">search</i>Analyze</a>
+            </div>
+            <div class="col s12 l6" style="padding: 5px 2.5px 0 2.5px;">
+              <a class="btn waves-effect waves-light modal-trigger" href="#publishing-modal" style="width: 100%;"><i class="material-icons left">publish</i>Publishing</a>
+            </div>
+            <div class="col s12 l6" style="padding: 5px 2.5px 0 2.5px;">
+              <a class="btn red waves-effect waves-light modal-trigger" href="#delete-modal" style="width: 100%;"><i class="material-icons left">delete</i>Delete</a>
+            </div>
           </div>
           {% if cfr.has_permission('MANAGE_FOLLOWERS') %}
           <span class="card-title">Social</span>
@@ -82,45 +88,6 @@
     </div>
     {% endif %}
 
-    {% if current_user != corpus.user %}
-    <div class="col s12">
-      <div class="card">
-        <div class="card-content">
-          <span class="card-title" id="files">Corpus Owner</span>
-          <div class="row">
-            <div class="col s12">
-              <table>
-                <tr>
-                  <td style="width:10%; margin-top:25px;">
-                    <img src="{{ url_for('users.user_avatar', user_id=corpus.user.id) }}" alt="user-image" class="circle responsive-img">
-                  </td>
-                  <td></td>
-                  <td>
-                    <ul>
-                      <li><b>{{ corpus.user.username }}</b></li>
-                      {% if corpus.user.full_name %}
-                      <li>{{ corpus.user.full_name }}</li>
-                      {% endif %}
-                      {% if corpus.user.show_email %}
-                      <li></li><a href="mailto:{{ corpus.user.email }}">{{ corpus.user.email }}</a></li>
-                      {% endif %}
-                    </ul>
-                  </td>
-                </tr>
-              </table>
-              <br>
-              <p></p>
-              {% if not current_user.is_following_corpus(corpus) and corpus.user.has_profile_privacy_setting('SHOW_EMAIL') %}
-              <a class="waves-effect waves-light btn-small" href="mailto:{{ corpus.user.email }}">Request Corpus</a>
-              {% endif %}
-              <a class="waves-effect waves-light btn-small" href="{{ url_for('users.user', user_id=corpus.user.id) }}">View profile</a>
-            </div>
-          </div>
-        </div>
-      </div>
-    </div>
-    {% endif %}
-
     <div class="col s12">
       <div class="card">
         <div class="card-content">
diff --git a/app/templates/corpora/public_corpus.html.j2 b/app/templates/corpora/public_corpus.html.j2
index fb13c252844954d9ca478a4a53652fb66c64e6fb..6ace0f7a26d4b855d991e558eccc6a8dfd855350 100644
--- a/app/templates/corpora/public_corpus.html.j2
+++ b/app/templates/corpora/public_corpus.html.j2
@@ -12,7 +12,10 @@
     <div class="col s12 l7">
       <div class="card service-color-border border-darken" data-service="corpus-analysis" style="border-top: 10px solid">
         <div class="card-content">
-          <span class="chip corpus-status-text corpus-status-color white-text" data-status="{{ corpus.status.name }}"></span></p>
+          {% if corpus.status.name in ['SUBMITTED', 'QUEUED', 'BUILDING'] %}
+          <a class="btn-floating btn-small waves-effect waves-light" id="refresh-button"><i class="material-icons">refresh</i></a>
+          {% endif %}
+          <span class="chip corpus-status-text corpus-status-color white-text" data-status="{{ corpus.status.name }}"></span>
           <div class="row">
 
             <div class="col s12">
@@ -48,7 +51,11 @@
           <div class="row">
             {% if cfr.has_permission('MANAGE_FILES') %}
             <div class="col s12 l6" style="padding: 0 2.5px;">
-              <a class="action-button btn disabled waves-effect waves-light" data-action="build-request" style="width: 100%;"><i class="nopaque-icons left">K</i>Build</a>
+              {% if corpus.status.name in ['UNPREPARED', 'FAILED'] %}
+              <a class="btn waves-effect waves-light" id="follower-build-request" style="width: 100%;"><i class="nopaque-icons left">K</i>Build</a>
+              {% else %}
+              <a class="btn disabled waves-effect waves-light" id="follower-build-request" style="width: 100%;"><i class="nopaque-icons left">K</i>Build</a>
+              {% endif %}
             </div>
             <div class="col s12 l6" style="padding: 0 2.5px;">
               {% if corpus.status.name in ['BUILT', 'STARTING_ANALYSIS_SESSION', 'RUNNING_ANALYSIS_SESSION', 'CANCELING_ANALYSIS_SESSION'] and current_user.is_following_corpus(corpus) %}
@@ -136,7 +143,7 @@
       <div class="card">
         <div class="card-content">
           <span class="card-title" id="corpus-followers">Corpus followers</span>
-          <div class="corpus-follower-list no-autoinit"></div>
+          <div class="corpus-follower-list no-autoinit" data-user-id="{{ corpus.user }}" data-corpus-id="{{ corpus.hashid }}"></div>
         </div>
       </div>
     </div>
@@ -244,6 +251,13 @@ publicCorpusFileList.add(
   ]
 );
 
+{% if corpus.status.name in ['SUBMITTED', 'QUEUED', 'BUILDING'] %}
+let refreshButton = document.querySelector('#refresh-button');
+refreshButton.addEventListener('click', () => {
+  window.location.reload();
+});
+{% endif %}
+
 {% if cfr.has_permission('MANAGE_FOLLOWERS') %}
 let publicCorpusFollowerList = new CorpusFollowerList(document.querySelector('.corpus-follower-list'));
 publicCorpusFollowerList.add(
@@ -255,6 +269,18 @@ publicCorpusFollowerList.add(
 );
 {% endif %}
 
+// #region Build Corpus Request
+{% if cfr.has_permission('MANAGE_CORPUS') %}
+let followerBuildRequest = document.querySelector('#follower-build-request');
+followerBuildRequest.addEventListener('click', () => {
+  Requests.corpora.entity.build({{ corpus.hashid|tojson }})
+    .then((response) => {
+      window.location.reload();
+    });
+});
+{% endif %}
+// #endregion Build Corpus
+
 // #region Corpus Unfollow Request
 {% if current_user.is_following_corpus(corpus) %}
   let unfollowRequestElement = document.querySelector('.action-button[data-action="unfollow-request"]');
@@ -309,7 +335,10 @@ M.Modal.init(
 
 inviteUserModalInviteButtonElement.addEventListener('click', (event) => {
   let usernames = inviteUserModalSearch.chipsData.map((chipData) => chipData.tag);
-  Requests.corpora.entity.followers.add({{ corpus.hashid|tojson }}, usernames);
+  Requests.corpora.entity.followers.add({{ corpus.hashid|tojson }}, usernames)
+    .then((response) => {
+      window.location.reload();
+    });
 });
 // #endregion Invite user