diff --git a/ippisite/ippidb/templates/base.html b/ippisite/ippidb/templates/base.html
index d6568b46aa99390292c55c37c8b60e0480cb8966..cc89079ad8119c61bfdd2a3cac9f09cd4423fe0b 100644
--- a/ippisite/ippidb/templates/base.html
+++ b/ippisite/ippidb/templates/base.html
@@ -18,21 +18,27 @@
         <script src="/static/js/ippidb.js" type="text/javascript"></script>
 
         <script type="text/javascript">
+            
             var modifyUrl = function(paramName, paramValue){
                 var url = new URL(location.href);
-                if(paramValue!=null){
-                    url.searchParams.set(paramName, paramValue);
-                }else if(Array.isArray(paramValue)){
+                if(Array.isArray(paramValue)){
                     url.searchParams.delete(paramName);
                     paramValue.forEach(function(value){
-                        url.searchParams.append(value);
+                        url.searchParams.append(paramName,value);
                     });
+                } else if (paramValue!=null){
+                    url.searchParams.set(paramName, paramValue);
                 }else{
                     url.searchParams.delete(paramName);
                 }
                 var modifiedUrl = url.toString();
                 window.location = modifiedUrl;
+                $('#loadingModal').modal();
             };
+            var changeSelection = function(paramName){ 
+                var selectedFields = $('input[name='+ paramName +']:checked').map(function(_, el) { return $(el).val(); }).get(); 
+                modifyUrl(paramName, selectedFields); 
+            } 
         </script>
 
     </head>
@@ -136,5 +142,21 @@
                 </div>
             </div>
         </div>
+
+<div class="modal fade" id="loadingModal" tabindex="-1" role="dialog" aria-labelledby="loadingModal" aria-hidden="true">
+  <div class="modal-dialog" role="document">
+    <div class="modal-content">
+      <div class="modal-header">
+        <h5 class="modal-title" id="exampleModalLabel">Loading...</h5>
+      </div>
+      <div class="modal-body">
+        <div class="progress">
+            <div class="progress-bar progress-bar-striped progress-bar-animated" role="progressbar" style="width: 100%"></div>
+        </div>
+      </div>
+    </div>
+  </div>
+</div>
+
     </body>
 </html>
diff --git a/ippisite/ippidb/templates/compound_list.html b/ippisite/ippidb/templates/compound_list.html
index a9fa49513c32a4774e71fe9f83a296d20694e90a..50321929f0251b19a9946d413a874cdf7b1ebd4e 100644
--- a/ippisite/ippidb/templates/compound_list.html
+++ b/ippisite/ippidb/templates/compound_list.html
@@ -29,20 +29,17 @@
 
 <div class="container-fluid">
 <div class="row flex-xl-nowrap">
-  <div class="col-12 col-md-3 col-xl-2 bd-sidebar">
-<form>
-  {% include "multiselection_list_menu.html" with label="PPI" selected_list=selected_ppis unselected_list=ppis param_name="ppi" all_param_name="ppis_all" all_param_value=ppis_all %}
-  {% include "multiselection_list_menu.html" with label="Disease" selected_list=selected_diseases unselected_list=diseases param_name="disease" all_param_name="diseases_all" all_param_value=diseases_all %}
-  {% include "multiselection_list_menu.html" with label="Organism" selected_list=selected_taxonomies unselected_list=taxonomies param_name="taxonomy" all_param_name="taxonomies_all" all_param_value=taxonomies_all %}
-  {% include "multiselection_list_menu.html" with label="Bound complex" selected_list=selected_boundcomplexes unselected_list=boundcomplexes param_name="boundcomplex" all_param_name="boundcomplexes_all" all_param_value=boundcomplexes_all %}
-  <input type="hidden" name="display" value="{{ display }}" />
-</form>
-</div>
 
-<main class="col-12 col-md-9 col-xl-10 pl-md-5 bd-content" role="main">
+<main class="col-12" role="main">
     <form>
         <div class="row">
-        <span class="col-md-10"><span>{{ count }} compounds</span>
+       {% include "multiselection_button.html" with label="PPI" %}
+       {% include "multiselection_button.html" with label="Disease" %}
+       {% include "multiselection_button.html" with label="Organism" %}
+       {% include "multiselection_button.html" with label="Bound complex" %}
+        </div>
+        <div class="row">
+        <span class="col-md-6"><span>{{ count }} compounds</span>
             {% if selected_ppis or selected_diseases or selected_taxonomies or selected_boundcomplexes %}
                 <span>&nbsp;-&nbsp;filters:&nbsp;</span>
                 {% if selected_ppis %}
@@ -130,4 +127,10 @@
     {% endif %}
   </ul>
 </nav>
+
+  {% include "multiselection_modal.html" with label="PPI" selected_list=selected_ppis unselected_list=ppis param_name="ppi" all_param_name="ppis_all" all_param_value=ppis_all %}
+  {% include "multiselection_modal.html" with label="Disease" selected_list=selected_diseases unselected_list=diseases param_name="disease" all_param_name="diseases_all" all_param_value=diseases_all %}
+  {% include "multiselection_modal.html" with label="Organism" selected_list=selected_taxonomies unselected_list=taxonomies param_name="taxonomy" all_param_name="taxonomies_all" all_param_value=taxonomies_all %}
+  {% include "multiselection_modal.html" with label="Bound complex" selected_list=selected_boundcomplexes unselected_list=boundcomplexes param_name="boundcomplex" all_param_name="boundcomplexes_all" all_param_value=boundcomplexes_all %}
+
 {% endblock %}
diff --git a/ippisite/ippidb/templates/multiselection_list_menu.html b/ippisite/ippidb/templates/multiselection_modal.html
similarity index 55%
rename from ippisite/ippidb/templates/multiselection_list_menu.html
rename to ippisite/ippidb/templates/multiselection_modal.html
index edcad43cb99a71f938911afeff542f396401ffd9..283e97413cdf33951c51df3af505d725c181dcf3 100644
--- a/ippisite/ippidb/templates/multiselection_list_menu.html
+++ b/ippisite/ippidb/templates/multiselection_modal.html
@@ -1,3 +1,13 @@
+<div class="modal fade" id="modal-{{ label }}" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
+  <div class="modal-dialog" role="document">
+    <div class="modal-content">
+      <div class="modal-header">
+        <h5 class="modal-title" id="exampleModalLabel">{{ label }}</h5>
+        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+          <span aria-hidden="true">&times;</span>
+        </button>
+      </div>
+      <div class="modal-body">
   <fieldset class="form-group row border border-info m-2">
     <div class="bg-info col-12">
         <legend>{{ label }}
@@ -13,7 +23,7 @@
     {% for element in selected_list  %}
     <div class="form-check col-12">
       <label class="form-check-label">
-        <input id="selected-{{ element.id }}" class="form-check-input text-right" type="checkbox" checked value="{{ element.id }}" onchange="this.form.submit()" name="{{ param_name }}" style="width: auto; margin-right: 1em;">
+        <input id="selected-{{ element.id }}" class="form-check-input text-right" type="checkbox" checked value="{{ element.id }}" name="{{ param_name }}" style="width: auto; margin-right: 1em;">
         {{ element.name }}
       </label>
     </div>
@@ -21,9 +31,17 @@
     {% for element in unselected_list %}
     <div class="form-check col-12">
       <label class="form-check-label">
-        <input class="form-check-input text-right" type="checkbox" value="{{ element.id }}" onchange="this.form.submit()" name="{{ param_name }}" style="width: auto; margin-right: 1em;">
+        <input class="form-check-input text-right" type="checkbox" value="{{ element.id }}" name="{{ param_name }}" style="width: auto; margin-right: 1em;">
         {{ element.name }}
       </label>
     </div>
     {% endfor %}
   </fieldset>
+      </div>
+      <div class="modal-footer">
+        <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
+        <button type="button" class="btn btn-primary" onclick="$('#modal-{{ label }}').modal('hide'); changeSelection('{{ param_name }}');">Apply</button>
+      </div>
+    </div>
+  </div>
+</div>