diff --git a/src/components/Suggestions.vue b/src/components/Suggestions.vue
index 5f4f169a1a66cb1ba3af24b360778e671d3e2827..6ae68ce521fb982d5b4471a666a4c87d41d2fef3 100644
--- a/src/components/Suggestions.vue
+++ b/src/components/Suggestions.vue
@@ -9,7 +9,7 @@
         <img v-if="account._source.getAvatar(account)" :src="account._source.getAvatar(account)" alt="" class="circle">
         <span class="title">{{ account._source.getDisplayName(account) }}</span>
         <p>{{ account._source.label }}</p>
-        <div v-if="isLoading && results[account.id] && results[account.id].results.isLoading">
+        <div v-if="isLoadingSources && results[account.id] && results[account.id].results.isLoading">
           <div class="progress">
             <div v-if="results[account.id].results.progress === 'indeterminate'" :class="indeterminate"></div>
             <div v-else class="determinate" :style="{width: `${results[account.id].results.progress}%`}"></div>
@@ -68,11 +68,15 @@ import axios from 'axios'
 export default {
   data () {
     return {
-      isLoading: false,
+      isLoadingSources: false,
+      isLoadingRetribute: false,
       results: {},
       aggregatedSuggestions: this.$store.state.cache.aggregatedSuggestions || {},
       retributeProfiles: this.$store.state.cache.retributeProfiles || {},
       loadingRetributeProfiles: [],
+      filters: {
+        retributeOnly: true
+      }
     }
   },
   computed: {
@@ -82,18 +86,33 @@ export default {
         return a
       })
     },
+    allSuggestions () {
+      return Object.values(this.aggregatedSuggestions)
+    },
     filteredSuggestions () {
-      return orderBy(Object.values(this.aggregatedSuggestions), ['weight', 'id'], ['desc', 'asc'])
+      let self = this
+      let suggestions = this.allSuggestions.filter((s) => {
+        let f = true
+        if (self.filters.retributeOnly) {
+          f = !!this.retributeProfiles[s.fullId]
+        }
+        return f
+      })
+      return orderBy(suggestions, ['weight', 'id'], ['desc', 'asc'])
     },
     missingRetributeProfiles () {
-      return this.filteredSuggestions.filter((s) => {
+      return this.allSuggestions.filter((s) => {
         return this.retributeProfiles[s.fullId] === undefined
       })
+    },
+    isLoading () {
+      return this.isLoadingSources || this.isLoadingRetribute
     }
   },
   methods: {
     clearCache () {
-      this.isLoading = false
+      this.isLoadingSources = false
+      this.isLoadingRetribute = false
       this.results = {}
       this.aggregatedSuggestions = {}
       this.retributeProfiles = {}
@@ -129,7 +148,7 @@ export default {
         this.retributeProfiles = {}
         this.loadingRetributeProfiles = []
       }
-      this.isLoading = true
+      this.isLoadingSources = true
       accounts.forEach((a) => {
         let r = {isLoading: true, progress: 'indeterminate', status: ''}
         let promise = a._source.fetch({account: a, store: this.$store, results: r, vue: this})
@@ -139,15 +158,18 @@ export default {
       for(let i = 0; i < keys.length; i++){
         await this.results[keys[i]].promise
       }
-      this.isLoading = false
+      this.isLoadingSources = false
     },
     async lookupAll () {
-      this.isLoading = true
-      const chunkSize = 10
       let self = this
       const toLoad = this.missingRetributeProfiles.filter((p) => {
         return self.loadingRetributeProfiles.indexOf(p.fullId) === -1
       })
+      if (toLoad.length === 0) {
+        return
+      }
+      this.isLoadingRetribute = true
+      const chunkSize = 10
       // lock
       toLoad.forEach((p) => {
         self.loadingRetributeProfiles.push(p.fullId)
@@ -160,7 +182,7 @@ export default {
         })
         await this.lookups(ids)
       }
-      this.isLoading = false
+      this.isLoadingRetribute = false
 
     },
     async lookups(ids) {