diff --git a/ippisite/ippidb/templates/base.html b/ippisite/ippidb/templates/base.html
index c7d2e2f2ef85f02c2a3d4b94d14b647d1766010a..95fdda9866de19f98986394d1e9750dae86d129e 100644
--- a/ippisite/ippidb/templates/base.html
+++ b/ippisite/ippidb/templates/base.html
@@ -12,6 +12,7 @@
         <link rel="stylesheet" href="/static/css/ippidb-typeahead.css">
         <link rel="stylesheet" href="/static/academicons-1.8.6/css/academicons.min.css"/>
         <link rel="stylesheet" href="/static/bootstrap-slider-master/dist/css/bootstrap-slider.min.css">
+        <link rel="stylesheet" href="https://ebi.emblstatic.net/web_guidelines/EBI-Icon-fonts/v1.3/fonts.css">
 
         <script src="/static/url-polyfill/url-polyfill.js"></script>
         <script src="/static/jquery/jquery-3.3.1.min.js"></script>
diff --git a/ippisite/ippidb/templates/compound_list.html b/ippisite/ippidb/templates/compound_list.html
index 3ddaa5aeedf1799306b676d62bd85a22d9566703..240846b04ff2d2572dc82e718dc7d1548514cd29 100644
--- a/ippisite/ippidb/templates/compound_list.html
+++ b/ippisite/ippidb/templates/compound_list.html
@@ -27,18 +27,86 @@
 <main class="col-12" role="main">
     <form class="container-fluid">
         <div class="m-2 d-flex justify-content-between">
-       {% include "multiselection_button.html" with label="PPI Family" param_name="family" %}
-       {% include "multiselection_button.html" with label="PPI" param_name="ppi" %}
-       {% include "multiselection_button.html" with label="Disease" param_name="disease" %}
-       {% include "multiselection_button.html" with label="Organism" param_name="taxonomy" %}
-       {% include "multiselection_button.html" with label="Bound complex" param_name="boundcomplex" %}
-       {% include "slider_button.html" with label="Molecular weight" param_name="molecular_weight" %}
-       {% include "slider_button.html" with label="AlogP" param_name="a_log_p" %}
-       {% include "slider_button.html" with label="H donors" param_name="nb_donor_h" %}
-       {% include "slider_button.html" with label="Publications" param_name="pubs" %}
-       {% include "marvinjs_button.html" %}
+            <span class="border border-primary rounded p-1 m-1">
+                <div class="dropdown btn-group" style="display: inline-flex;">
+                    <i class="icon icon-common icon-search mr-1 " style="font-size: 1.75rem; vertical-align: middle" title="Text search"></i>                                
+                    <input id="q" value="{{ q }}" class="form-control" type="text" placeholder="Type search text here" onchange="modifyUrl('q',$('#q').val());">
+                </div>            
+            </span>
+            <span class="border border-primary rounded p-1 m-1">
+                <i class="icon icon-conceptual icon-chemical" style="font-size: 1.75rem; vertical-align: middle" title="Compound filters"></i>
+                <div class="dropdown btn-group">
+                    <button class="btn btn-primary dropdown-toggle" type="button" id="pcpropMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Physico-Chemical properties
+                    </button>
+                    <div class="dropdown-menu" aria-labelledby="pcpropMenuButton">
+                        {% include "slider_button.html" with label="H donors" param_name="nb_donor_h" %}
+                        {% include "slider_button.html" with label="Molecular weight" param_name="molecular_weight" %}        
+                        {% include "slider_button.html" with label="AlogP" param_name="a_log_p" %}
+                    </div>
+                </div>
+                <div class="dropdown btn-group" style="display: inline-flex;">
+                    <button class="btn btn-primary dropdown-toggle" type="button" id="crMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Chemistry Rules
+                    </button>
+                    <div class="dropdown-menu" aria-labelledby="crMenuButton">
+                    </div>
+                </div>
+                <div class="dropdown btn-group" style="display: inline-flex;">
+                    <button class="btn btn-primary dropdown-toggle" type="button" id="aeMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Activity and Efficiencies
+                    </button>
+                    <div class="dropdown-menu" aria-labelledby="aeMenuButton">
+                    </div>
+                </div>
+                <div class="dropdown btn-group" style="display: inline-flex;">
+                    <button class="btn btn-primary dropdown-toggle" type="button" id="mmoaMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Molecular Mechanism of Action
+                    </button>
+                    <div class="dropdown-menu" aria-labelledby="mmoaMenuButton">
+                    </div>
+                </div>
+                <div class="dropdown btn-group" style="display: inline-flex;">
+                        <button class="btn btn-primary dropdown-toggle" type="button" id="elMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                            External Links
+                        </button>
+                        <div class="dropdown-menu" aria-labelledby="elMenuButton">
+                        </div>
+                    </div>            
+                </span>
+            <span class="border border-primary rounded p-1 m-1">
+                <i class="icon icon-conceptual icon-structures-3d"  style="font-size: 1.75rem; vertical-align: middle" title="PPI target filters"></i>
+                <div class="dropdown btn-group" style="display: inline-flex;">
+                        <button class="btn btn-primary dropdown-toggle" type="button" id="ptfMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                            PPI target filters
+                        </button>
+                        <div class="dropdown-menu" aria-labelledby="ptfMenuButton">
+                            {% include "multiselection_button.html" with label="Bound complex" param_name="boundcomplex" %}
+                            {% include "multiselection_button.html" with label="PPI Family" param_name="family" %}
+                            {% include "multiselection_button.html" with label="Organism" param_name="taxonomy" %}
+                            {% include "multiselection_button.html" with label="Disease" param_name="disease" %}
+                            {% include "multiselection_button.html" with label="PPI" param_name="ppi" %}
+                            {% include "marvinjs_button.html" %}
+                        </div>
+                    </div>            
+            </span>
+
+            <span class="border border-primary rounded p-1 m-1">
+                    <i class="icon icon-common icon-flask" style="font-size: 1.75rem; vertical-align: middle" title="Affinity assay filters"></i>
+                    <div class="dropdown btn-group" style="display: inline-flex;">
+                            <button class="btn btn-primary dropdown-toggle" type="button" id="aaMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                                Affinity assays
+                            </button>
+                            <div class="dropdown-menu" aria-labelledby="aaMenuButton">
+                                    {% include "slider_button.html" with label="Publications" param_name="pubs" %}
+                            </div>
+                        </div>            
+            </span>
+    
+
         </div>
-        <div class="m-2 d-flex ">
+
+        <div class="m-2 d-flex justify-content-between">
             <span>{{ paginator.count }} compounds</span>
             {% if selected_family or selected_ppi or selected_disease or selected_taxonomy or selected_boundcomplex or molecular_weight or a_log_p or nb_donor_h or pubs or similar_to %}
             <span>
@@ -114,7 +182,7 @@
 {% if page_obj %}
     <div class="container-fluid">
     {% if display == 'v' %}
-        <div class="d-flex flex-wrap m-2 justify-content-around">
+        <div class="d-flex flex-wrap m-2 justify-content-between">
         {% for compound in page_obj %}
             {% include "compound_v_item.html" with compound=compound %}
         {% endfor %}
diff --git a/ippisite/ippidb/templates/marvinjs_button.html b/ippisite/ippidb/templates/marvinjs_button.html
index 6d172689842cc596b60cd93dfebbd457ea205105..c14c65c7a50e5bd2b284821a107c76936a76013a 100644
--- a/ippisite/ippidb/templates/marvinjs_button.html
+++ b/ippisite/ippidb/templates/marvinjs_button.html
@@ -1,3 +1,3 @@
-<button type="button" class="btn btn-primary btn-lg m-1" style="width: inherit!important" data-toggle="modal" data-target="#modal-marvin">
-  <i class="fa fa-filter mr-2"></i> Chemical similarity
-</button>
+<a class="dropdown-item" href="#" data-toggle="modal" data-target="#modal-marvin">
+    <i class="fa fa-filter mr-2"></i> Chemical similarity
+</a>
\ No newline at end of file
diff --git a/ippisite/ippidb/templates/multiselection_button.html b/ippisite/ippidb/templates/multiselection_button.html
index 42dd053eed45653053874ec442112eb78cf31bdb..9e638c18802d240340682014630afaa7921e6e89 100644
--- a/ippisite/ippidb/templates/multiselection_button.html
+++ b/ippisite/ippidb/templates/multiselection_button.html
@@ -1,3 +1,3 @@
-<button type="button" class="btn btn-primary btn-lg m-1" style="width: inherit!important" data-toggle="modal" data-target="#modal-{{ param_name }}">
-  <i class="fa fa-filter mr-2"></i>{{ label }}
-</button>
+<a class="dropdown-item" href="#" data-toggle="modal" data-target="#modal-{{ param_name }}">
+    <i class="fa fa-filter mr-2"></i>{{ label }}
+  </a>
diff --git a/ippisite/ippidb/templates/slider_button.html b/ippisite/ippidb/templates/slider_button.html
index 42dd053eed45653053874ec442112eb78cf31bdb..1a9f418d488c25f816b6948509423e1538564deb 100644
--- a/ippisite/ippidb/templates/slider_button.html
+++ b/ippisite/ippidb/templates/slider_button.html
@@ -1,3 +1,3 @@
-<button type="button" class="btn btn-primary btn-lg m-1" style="width: inherit!important" data-toggle="modal" data-target="#modal-{{ param_name }}">
+<a class="dropdown-item" href="#" data-toggle="modal" data-target="#modal-{{ param_name }}">
   <i class="fa fa-filter mr-2"></i>{{ label }}
-</button>
+</a>
\ No newline at end of file
diff --git a/ippisite/ippidb/views.py b/ippisite/ippidb/views.py
index d07509550d46c532a546fe132bb100b4186b4940..90cb4ab783f49b61a1ef04f57ce134850ae44e52 100644
--- a/ippisite/ippidb/views.py
+++ b/ippisite/ippidb/views.py
@@ -6,7 +6,7 @@ import json
 import math
 from collections import OrderedDict
 
-from django.db.models import Max, Min, Count, F
+from django.db.models import Max, Min, Count, F, Q
 from django.db.models.functions import Cast
 from django.db.models import FloatField                                                                                                                                                                 
 from django.shortcuts import render
@@ -220,6 +220,35 @@ class CompoundSimilarityFilterHandler(object):
         """ to be called after queryset filtering """
         pass
 
+class TextSearchFilterHandler(object):
+
+    def __init__(self, parameter_name, filter_context, request_get):
+        self.parameter_name = parameter_name
+        self.filter_context = filter_context
+        if request_get.get(self.parameter_name):
+            self.value = request_get.get(self.parameter_name).strip()
+        else:
+            self.value = None
+        self.filter_context[self.parameter_name] = self.value
+
+    def process(self, queryset):
+        """ to be called during queryset filtering """
+        if self.value:
+            # filter on:
+            # compound common name
+            # PPI family name
+            # bound complex protein short name
+            # disease name
+            queryset = queryset.filter(Q(common_name__icontains=self.value) |
+                Q(compoundaction__ppi__family__name__icontains=self.value) |
+                Q(compoundaction__ppi_id__ppicomplex__complex__protein__short_name__icontains=self.value) |
+                Q(compoundaction__ppi__diseases__name__icontains=self.value) )
+        return queryset
+    
+    def post_process(self, compound_ids, queryset):
+        """ to be called after queryset filtering """
+        pass
+
 class CompoundRangeFilterHandler(object):
 
     def __init__(self, parameter_name, filter_context, request_get):
@@ -344,6 +373,7 @@ class CompoundListView(ListView):
             CompoundRangeFilterHandler('nb_donor_h', self.filter_context, self.request.GET),
             CompoundRangeFilterHandler('pubs', self.filter_context, self.request.GET),
             CompoundSimilarityFilterHandler('similar_to', self.filter_context, self.request.GET),
+            TextSearchFilterHandler('q', self.filter_context, self.request.GET),
         ]
         for cfh in cfhs:
             qs = cfh.process(qs)