diff --git a/ippisite/db.sqlite3.REMOVED.git-id b/ippisite/db.sqlite3.REMOVED.git-id
deleted file mode 100644
index 613e892a3eb646240c3f02ecd6bb499ec9f36734..0000000000000000000000000000000000000000
--- a/ippisite/db.sqlite3.REMOVED.git-id
+++ /dev/null
@@ -1 +0,0 @@
-6970ab62cecf150af0212a6c9a560f67c99739bc
\ No newline at end of file
diff --git a/ippisite/ippidb/management/commands/import_v1_data.py b/ippisite/ippidb/management/commands/import_v1_data.py
index e8213ad744af2cf2ab5f962948011f0f1bc0a2bd..8ef965ceffc3a0e1cbbe2fd500b05e554fd8733d 100644
--- a/ippisite/ippidb/management/commands/import_v1_data.py
+++ b/ippisite/ippidb/management/commands/import_v1_data.py
@@ -471,7 +471,7 @@ select distinct protein.NumUniprot, domain.PfamNumAccession  , complexe.NbCopy,
                     r = RefCompoundBiblio()
                     r.compound_id = c.id
                     r.bibliography_id = b.id
-                    r.compound_name = row[0]
+                    r.compound_name = row[0].split('-')[1] #mysql format for this field is [PMID/WIPOID]-name: we remove the first part
                     r.save()
                 except Exception as e:
                     if options['stoponfail']:
diff --git a/ippisite/ippidb/models.py b/ippisite/ippidb/models.py
index 5e4c3d225e8da27831ddd30b070c7103291ec8f8..72b96de6bb2620d53c0095533cd657415d47bc3d 100644
--- a/ippisite/ippidb/models.py
+++ b/ippisite/ippidb/models.py
@@ -104,7 +104,7 @@ class Protein(AutoFillableModel):
     short_name = models.CharField('Short name', max_length=50)
     gene_name = models.CharField('Gene name', unique=True, max_length=30)
     entry_name = models.CharField('Entry name', max_length=30)
-    organism = models.ForeignKey('Taxonomy', default='Homo sapiens')
+    organism = models.ForeignKey('Taxonomy', models.CASCADE)
     molecular_functions = models.ManyToManyField(MolecularFunction)
 
     def autofill(self):
@@ -152,8 +152,8 @@ class Domain(AutoFillableModel):
 
 
 class ProteinDomainComplex(models.Model):
-    protein = models.ForeignKey('Protein')
-    domain = models.ForeignKey('Domain')
+    protein = models.ForeignKey('Protein', models.CASCADE)
+    domain = models.ForeignKey('Domain', models.CASCADE)
     ppc_copy_nb = models.IntegerField(
         'Number of copies of the protein in the complex')
 
@@ -163,6 +163,8 @@ class ProteinDomainComplex(models.Model):
     def __str__(self):
         return '{}-{}'.format(self.protein_id, self.domain_id)
 
+    def name(self):
+        return self.protein.short_name
 
 class ProteinDomainBoundComplex(ProteinDomainComplex):
     ppp_copy_nb_per_p = models.IntegerField(
@@ -201,7 +203,7 @@ class Ppi(models.Model):
     pdb_id = models.CharField('PDB ID', max_length=4, null=True)
     pockets_nb = models.IntegerField(
         'Total number of pockets in the complex', default=1)
-    symmetry = models.ForeignKey(Symmetry)
+    symmetry = models.ForeignKey(Symmetry, models.CASCADE)
     diseases = models.ManyToManyField(Disease)
 
     def __str__(self):
@@ -233,8 +235,8 @@ class Ppi(models.Model):
         return name
 
 class PpiComplex(models.Model):
-    ppi = models.ForeignKey(Ppi)
-    complex = models.ForeignKey(ProteinDomainComplex)
+    ppi = models.ForeignKey(Ppi, models.CASCADE)
+    complex = models.ForeignKey(ProteinDomainComplex, models.CASCADE)
     cc_nb = models.IntegerField(
         'Number of copies of the complex in the PPI', default=1)
 
@@ -244,7 +246,6 @@ class PpiComplex(models.Model):
     def __str__(self):
         return 'PPI {}, Complex {} ({})'.format(self.ppi, self.complex, self.cc_nb)
 
-
 class Compound(models.Model):
     canonical_smile = models.CharField(
         'Canonical Smile', unique=True, max_length=500)
@@ -318,7 +319,7 @@ class Compound(models.Model):
     iupac_name = models.CharField(
         'IUPAC name', max_length=255, blank=True, null=True)
     mddr_compound = models.ForeignKey(
-        'MDDRCompoundImport', blank=True, null=True)
+        'MDDRCompoundImport', models.CASCADE, blank=True, null=True)
 
     @property
     def biblio_refs(self):
@@ -407,15 +408,15 @@ class TestActivityDescription(models.Model):
         ('I', 'Inhibition'),
         ('S', 'Stabilization')
     )
-    biblio = models.ForeignKey(Bibliography)
-    ppi = models.ForeignKey(Ppi, blank=True, null=True)
+    biblio = models.ForeignKey(Bibliography, models.CASCADE)
+    ppi = models.ForeignKey(Ppi, models.CASCADE, blank=True, null=True)
     test_name = models.CharField('Test name', max_length=100)
     test_type = models.CharField('Test type', max_length=5, choices=TEST_TYPES)
     test_modulation_type = models.CharField(
         'Test modulation type', max_length=1, choices=TEST_MODULATION_TYPES)
     nb_active_compounds = models.IntegerField(
         'Total number of active compounds')
-    cell_line = models.ForeignKey(CellLine, blank=True, null=True)
+    cell_line = models.ForeignKey(CellLine, models.CASCADE, blank=True, null=True)
 
     def get_complexes(self):
         """
@@ -440,8 +441,8 @@ class CompoundActivityResult(models.Model):
         ('pKd', 'pKd (dissociation constant, -log10)'),
         ('pKi', 'pKi (inhibition constant, -log10)'),
     )
-    compound = models.ForeignKey(Compound)
-    test_activity_description = models.ForeignKey(TestActivityDescription)
+    compound = models.ForeignKey(Compound, models.CASCADE)
+    test_activity_description = models.ForeignKey(TestActivityDescription, models.CASCADE)
     activity_type = models.CharField(
         'Activity type', max_length=5, choices=ACTIVITY_TYPES)
     activity = models.DecimalField(
@@ -455,16 +456,16 @@ class CompoundActivityResult(models.Model):
 
 
 class TestCytotoxDescription(models.Model):
-    biblio = models.ForeignKey(Bibliography)
+    biblio = models.ForeignKey(Bibliography, models.CASCADE)
     test_name = models.CharField('Cytotoxicity test name', max_length=100)
-    cell_line = models.ForeignKey(CellLine)
+    cell_line = models.ForeignKey(CellLine, models.CASCADE)
     compound_concentration = models.DecimalField(
         'Compound concentration in μM', max_digits=7, decimal_places=3, blank=True, null=True)
 
 
 class CompoundCytotoxicityResult(models.Model):
-    compound = models.ForeignKey(Compound)
-    test_cytotoxicity_description = models.ForeignKey(TestCytotoxDescription)
+    compound = models.ForeignKey(Compound, models.CASCADE)
+    test_cytotoxicity_description = models.ForeignKey(TestCytotoxDescription, models.CASCADE)
     toxicity = models.BooleanField('Toxicity', default=False)
 
     class Meta:
@@ -478,9 +479,9 @@ class TestPKDescription(models.Model):
         ('IP', ''),
         ('SL', 'SL')
     )
-    biblio = models.ForeignKey(Bibliography)
+    biblio = models.ForeignKey(Bibliography, models.CASCADE)
     test_name = models.CharField('Pharmacokinetic test name', max_length=100)
-    organism = models.ForeignKey(Taxonomy)
+    organism = models.ForeignKey(Taxonomy, models.CASCADE)
     administration_mode = models.CharField(
         'Administration mode', max_length=2, choices=ADMINISTRATION_MODES, blank=True, null=True)
     dose = models.DecimalField(
@@ -490,8 +491,8 @@ class TestPKDescription(models.Model):
 
 
 class CompoundPKResult(models.Model):
-    compound = models.ForeignKey(Compound)
-    test_pk_description = models.ForeignKey(TestPKDescription)
+    compound = models.ForeignKey(Compound, models.CASCADE)
+    test_pk_description = models.ForeignKey(TestPKDescription, models.CASCADE)
     tolerated = models.NullBooleanField('Tolerated', null=True)
     auc = models.IntegerField(
         'Area under curve (ng.mL-1.hr)', blank=True, null=True)
@@ -516,10 +517,10 @@ class CompoundAction(models.Model):
         ('A', 'Allosteric'),
         ('U', 'Unspecified')
     )
-    compound = models.ForeignKey(Compound)
+    compound = models.ForeignKey(Compound, models.CASCADE)
     activation_mode = models.CharField(
         'Activation mode', max_length=1, choices=ACTIVATION_MODES)
-    ppi = models.ForeignKey(Ppi)
+    ppi = models.ForeignKey(Ppi, models.CASCADE)
     pdb_id = models.CharField('PDB ID', max_length=4, blank=True, null=True)
     nb_copy_compounds = models.IntegerField(
         'Number of copies for the compound')
@@ -536,8 +537,8 @@ class CompoundAction(models.Model):
 
 
 class RefCompoundBiblio(models.Model):
-    compound = models.ForeignKey(Compound)
-    bibliography = models.ForeignKey(Bibliography)
+    compound = models.ForeignKey(Compound, models.CASCADE)
+    bibliography = models.ForeignKey(Bibliography, models.CASCADE)
     compound_name = models.CharField(
         'Compound name in the publication', max_length=50)
 
diff --git a/ippisite/ippidb/templates/base.html b/ippisite/ippidb/templates/base.html
index 38929b5af569a3fea8b2d903a42fe14432cc36d2..527c0626f21fbca23127de265d7af98641a40d61 100644
--- a/ippisite/ippidb/templates/base.html
+++ b/ippisite/ippidb/templates/base.html
@@ -9,6 +9,18 @@
         <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js" integrity="sha384-h0AbiXch4ZDo7tp9hKZ4TsHbi047NrKGLO3SEJAg45jXxnGIfYzk4Si90RDIqNm1" crossorigin="anonymous"></script>
         <script type="text/javascript" src="/static/Kekule.js-master/release/kekule.js?modules=chemWidget,openbabel,indigo"></script>
         <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{
+                    url.searchParams.delete(paramName);
+                }
+                var modifiedUrl = url.toString();
+                window.location = modifiedUrl;
+            };
+        </script>
     </head>
 
     <body>    
diff --git a/ippisite/ippidb/templates/compound_abstract.html b/ippisite/ippidb/templates/compound_abstract.html
index 82110001a00658878fafadbe3f30d18222c1425d..f089776fc0f4de43be590f7ad15e73614f710702 100644
--- a/ippisite/ippidb/templates/compound_abstract.html
+++ b/ippisite/ippidb/templates/compound_abstract.html
@@ -1,6 +1,6 @@
 <div class="row m-2 border border-info bg-light">
   <div class="col-sm-3 border-info d-flex justify-content-center align-content-center">
-    <img src="https://pubchem.ncbi.nlm.nih.gov/image/imagefly.cgi?cid={{ compound.pubchem_id }}&width=300&height=300" style="width:300px;height:300px;"/>
+    <a href="/compound/{{ compound.id }}">{% include "pubchem_img.html" %}</a>
   </div>
   <div class="col-sm-9">
     <ul class="list-group">
@@ -20,19 +20,6 @@
       <li class="list-group-item">Mentionned in {% include "biblio_citation.html" with bibliography=biblio_ref.bibliography%} as <i>{{ biblio_ref.compound_name }}</i></li>
       {% endfor %}
     </ul>
-    {%if compound.pubchem_id or compound.chembl_id or compound.chemspider_id %}
-    <p>in other databases</p>
-    <ul class="list-group">
-      {% if compound.pubchem_id %}
-      <li class="list-group-item">PubChem: <a href="https://pubchem.ncbi.nlm.nih.gov/compound/{{ compound.pubchem_id }}" target="_blank">{{ compound.pubchem_id }}</a></li>
-      {% endif %}
-      {% if compound.chembl_id %}
-      <li class="list-group-item">ChEMBL: <a href="https://www.ebi.ac.uk/chembldb/compound/inspect/{{ compound.chembl_id}}" target="_blank">{{ compound.chembl_id}}</a></li>
-      {% endif %}
-      {% if compound.chemspider_id %}
-      <li class="list-group-item">ChemSpider: <a href="http://www.chemspider.com/Chemical-Structure.{{ compound.chemspider_id}}.html" target="_blank">{{ compound.chemspider_id}}</a></li>
-      {% endif %}
-    </ul>
-    {% endif %}
+    {% include "compound_db_links.html" %}
   </div>
 </div>
diff --git a/ippisite/ippidb/templates/compound_card.html b/ippisite/ippidb/templates/compound_card.html
new file mode 100644
index 0000000000000000000000000000000000000000..6b0927267ded840994071464337e93c3343e353c
--- /dev/null
+++ b/ippisite/ippidb/templates/compound_card.html
@@ -0,0 +1,104 @@
+{% extends "base.html" %}
+
+    
+{% block title %}compound detail{% endblock %}
+
+{% block content %}
+{% include "kekule_display.html" %}
+<div id="mainnav">
+</div>
+<div class="inner-wrap">
+	<div id="main-wrapper" class="page">
+		<div id="main">
+			<div id="content" class="main-content">
+					<main role="main">
+				<div class="row">
+    <div class="col-3">
+        <div class="nav flex-column nav-pills" id="v-pills-tab" role="tablist">
+          <a class="nav-link active" id="v-pills-compound-tab" data-toggle="pill" href="#v-pills-compound" role="tab" aria-controls="v-pills-compound" aria-expanded="true">Compound</a>
+          <a class="nav-link" id="v-pills-pharmacology-tab" data-toggle="pill" href="#v-pills-pharmacology" role="tab" aria-controls="v-pills-pharmacology" aria-expanded="true">Pharmocology</a>
+          <a class="nav-link" id="v-pills-pharmacokinetics-tab" data-toggle="pill" href="#v-pills-pharmacokinetics" role="tab" aria-controls="v-pills-pharmacokinetics" aria-expanded="true">Pharmacokinetics</a>
+        </div>
+    </div>
+    <div class="col-9">
+        <div class="tab-content" id="v-pills-tabContent">
+          <div class="tab-pane fade show active" id="v-pills-compound" role="tabpanel" aria-labelledby="v-pills-compound-tab">
+            <div class="card">
+               <div class="card-body">
+               {% include "pubchem_img.html" %}
+<!--
+               <div id="{{ compound.id }}_smilesdisplay"
+                   data-widget="Kekule.ChemWidget.Viewer2D" data-auto-size="true" data-padding="20"
+                   data-toolbar-evoke-modes="[0]">
+               </div>
+               <textarea rows="10" cols="50" id="{{ compound.id }}_smilesvalue" style="display:none;">{{ compound.canonical_smile }}</textarea>  
+               <script>
+                $(window).on('load', function(){
+                  kekule_display('{{ compound.id }}_smilesvalue','{{ compound.id }}_smilesdisplay')
+                });
+               </script>
+-->
+               <ul class="list-group">
+                   <li class="list-group-item">Common name: {{ compound.common_name }}</li>
+                   <li class="list-group-item">Canonical SMILES: {{ compound.canonical_smile }}</li>
+                   <li class="list-group-item">IUPAC name: {{ compound.iupac_name }}</li>
+                   <li class="list-group-item">Aromatic ratio: {{ compound.aromatic_ratio }}</li>
+                   <li class="list-group-item">Balaban index: {{ compound.balaban_index }}</li>
+                   <li class="list-group-item">Fsp3: {{ compound.fsp3 }}</li>
+                   <li class="list-group-item">GC molar refractivity: {{ compound.gc_molar_refractivity }}</li>
+                   <li class="list-group-item" title="Partition coefficient octanol-1/water, with pKa information">LogD: {{ compound.log_d }}</li>
+                   <li class="list-group-item" title="Partition coefficient octanol-1/water">ALogP: {{ compound.a_log_p }}</li>
+                   <li class="list-group-item" title="computed with VdW radii">Mean atom volume: {{ compound.mean_atom_vol_vdw }}</li>
+                   <li class="list-group-item">Molecular weight: {{ compound.molecular_weight }}</li>
+                   <li class="list-group-item">Number of hydrogen bond acceptors: {{ compound.nb_acceptor_h }}</li>
+                   <li class="list-group-item">Number of aliphatics amines: {{ compound.nb_aliphatic_amines }}</li>
+                   <li class="list-group-item">Number of aromatic bonds: {{ compound.nb_aromatic_bonds }}</li>
+                   <li class="list-group-item">Number of aromatic ethers: {{ compound.nb_aromatic_ether }}</li>
+                   <li class="list-group-item" title="Smallest Set of System Rings">Number of aromatic SSSRs: {{ compound.nb_aromatic_sssr }}</li>
+                   <li class="list-group-item">Number of atoms: {{ compound.nb_atom }}</li>
+                   <li class="list-group-item">Number of non hydrogen atoms: {{ compound.nb_atom_non_h }}</li>
+                   <li class="list-group-item">Number of benzene-like rings: {{ compound.nb_benzene_like_rings }}</li>
+                   <li class="list-group-item">Number of bonds: {{ compound.nb_bonds }}</li>
+                   <li class="list-group-item">Number of bonds not involving a hydrogen: {{ compound.nb_bonds_non_h }}</li>
+                   <li class="list-group-item">Number of Bromine atoms: {{ compound.nb_br }}</li>
+                   <li class="list-group-item">Number of Carbon atoms: {{ compound.nb_c }}</li>
+                   <li class="list-group-item">Number of chiral centers: {{ compound.nb_chiral_centers }}</li>
+                   <li class="list-group-item">Number of circuits: {{ compound.nb_circuits }}</li>
+                   <li class="list-group-item">Number of Chlorine atoms: {{ compound.nb_cl }}</li>
+                   <li class="list-group-item">Number of sp2-hybridized carbon atoms: {{ compound.nb_csp2 }}</li>
+                   <li class="list-group-item">Number of sp3-hybridized carbon atoms: {{ compound.nb_csp3 }}</li>
+                   <li class="list-group-item">Number of hydrogen bond donors: {{ compound.nb_donor_h }}</li>
+                   <li class="list-group-item">Number of double bonds: {{ compound.nb_double_bonds }}</li>
+                   <li class="list-group-item">Number of Fluorine atoms: {{ compound.nb_f }}</li>
+                   <li class="list-group-item">Number of Iodine atoms: {{ compound.nb_i }}</li>
+                   <li class="list-group-item">Number of multiple bonds: {{ compound.nb_multiple_bonds }}</li>
+                   <li class="list-group-item">Number of Nitrogen atoms: {{ compound.nb_n }}</li>
+                   <li class="list-group-item">Number of Oxygen atoms: {{ compound.nb_o }}</li>
+                   <li class="list-group-item">Number of rings: {{ compound.nb_rings }}</li>
+                   <li class="list-group-item">Number of rotatable bonds: {{ compound.nb_rotatable_bonds }}</li>
+                   <li class="list-group-item">Randic index: {{ compound.randic_index }}</li>
+                   <li class="list-group-item" title="radial distribution function weighted by the atomic masses at 7Ã…">RDF070m: {{ compound.rdf070m }}</li>
+                   <li class="list-group-item">Fraction of rotatable bonds: {{ compound.rotatable_bond_fraction }}</li>
+                   <li class="list-group-item">Sum of atomic polarizabilities: {{ compound.sum_atom_polar }}</li>
+                   <li class="list-group-item">Sum of atom volumes computed with VdW radii: {{ compound.sum_atom_vol_vdw }}</li>
+                   <li class="list-group-item" title="Topological Polar Surface Area">TPSA: {{ compound.tpsa }}</li>
+                   <li class="list-group-item">Unsaturation index: {{ compound.ui }}</li>
+                   <li class="list-group-item">Wiener index: {{ compound.wiener_index }}</li>
+               </ul>
+               {% include "compound_db_links.html" %}
+               </div>
+            </div>
+          </div>
+          <div class="tab-pane fade" id="v-pills-pharmacology" role="tabpanel" aria-labelledby="v-pills-pharmacology-tab">
+          </div>
+          <div class="tab-pane fade" id="v-pills-pharmacokinetics" role="tabpanel" aria-labelledby="v-pills-pharmacokinetics-tab">
+          </div>
+        </div>
+    </div>
+				</div>
+					</main><!-- .site-main -->
+			</div>
+		</div><!-- div main -->
+	</div>
+</div>
+{% endblock %}
diff --git a/ippisite/ippidb/templates/compound_db_links.html b/ippisite/ippidb/templates/compound_db_links.html
new file mode 100644
index 0000000000000000000000000000000000000000..0a59ecb0487e718ee6dfa2f63d4ab5c5362eb2fe
--- /dev/null
+++ b/ippisite/ippidb/templates/compound_db_links.html
@@ -0,0 +1,14 @@
+    {%if compound.pubchem_id or compound.chembl_id or compound.chemspider_id %}
+    <p>in other databases</p>
+    <ul class="list-group">
+      {% if compound.pubchem_id %}
+      <li class="list-group-item">PubChem: <a href="https://pubchem.ncbi.nlm.nih.gov/compound/{{ compound.pubchem_id }}" target="_blank">{{ compound.pubchem_id }}</a></li>
+      {% endif %}
+      {% if compound.chembl_id %}
+      <li class="list-group-item">ChEMBL: <a href="https://www.ebi.ac.uk/chembldb/compound/inspect/{{ compound.chembl_id}}" target="_blank">{{ compound.chembl_id}}</a></li>
+      {% endif %}
+      {% if compound.chemspider_id %}
+      <li class="list-group-item">ChemSpider: <a href="http://www.chemspider.com/Chemical-Structure.{{ compound.chemspider_id}}.html" target="_blank">{{ compound.chemspider_id}}</a></li>
+      {% endif %}
+    </ul>
+    {% endif %}
diff --git a/ippisite/ippidb/templates/compound_list.html b/ippisite/ippidb/templates/compound_list.html
index 553101a4631748e5883034a9cae387e67aa95bae..351af226b4d70272f07416a3562229cdfcefcd65 100644
--- a/ippisite/ippidb/templates/compound_list.html
+++ b/ippisite/ippidb/templates/compound_list.html
@@ -1,7 +1,7 @@
 {% extends "admin-session.html" %}
 {% load customtags %}
     
-{% block title %}compound{% endblock %}
+{% block title %}compounds list{% endblock %}
 
 {% block content %}
 <div id="mainnav">
@@ -29,35 +29,44 @@
         </div>
     </nav>
 </div>
-{% include "kekule_display.html" %}
-=======
 
 <div class="container-fluid">
 <div class="row flex-xl-nowrap">
   <div class="col-12 col-md-3 col-xl-2 bd-sidebar">
 <form>
-  <fieldset class="form-group row border border-info m-2">
-    <div class="bg-info col-12"><legend>PPI</legend></div>
-    {% for ppi in selected_ppis  %}
-    <div class="form-check col-12">
-      <label class="form-check-label">
-        <input class="form-check-input text-right" type="checkbox" checked value="{{ ppi.id }}" onchange="this.form.submit()" name="ppi" style="width: auto; margin-right: inherit!;">
-        {{ ppi.name }}
-      </label>
-    </div>
-    {% endfor %}
-    {% for ppi in ppis|slice:":5"  %}
-    <div class="form-check col-12">
-      <label class="form-check-label">
-        <input class="form-check-input text-right" type="checkbox" value="{{ ppi.id }}" onchange="this.form.submit()" name="ppi" style="width: auto; margin-right: inherit!;">
-        {{ ppi.name }}
-      </label>
-    </div>
-    {% endfor %}
-  </fieldset>
+  {% 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 %}
 </form>
 </div>
+
 <main class="col-12 col-md-9 col-xl-10 pl-md-5 bd-content" role="main">
+    <div class="row m-2 border border- bg-light"><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 %}
+                {% for selected in selected_ppis %}
+                    <span class="badge badge-info" style="font-size: 100%">{{ selected.name }}</span>&nbsp;
+                {% endfor %}
+            {% endif %}
+            {% if selected_diseases %}
+                {% for selected in selected_diseases %}
+                    <span class="badge badge-info" style="font-size: 100%">{{ selected.name }}</span>&nbsp;
+                {% endfor %}
+            {% endif %}
+            {% if selected_taxonomies %}
+                {% for selected in selected_taxonomies %}
+                    <span class="badge badge-info" style="font-size: 100%">{{ selected.name }}</span>&nbsp;
+                {% endfor %}
+            {% endif %}
+            {% if selected_boundcomplexes %}
+                {% for selected in selected_boundcomplexes %}
+                    <span class="badge badge-info" style="font-size: 100%">{{ selected.name }}</span>&nbsp;
+                {% endfor %}
+            {% endif %}
+        {% endif %}
+    </div>
 {% if compounds %}
     {% for compound in compounds %}
         {% include "compound_abstract.html" with compound=compound %}
diff --git a/ippisite/ippidb/templates/multiselection_list_menu.html b/ippisite/ippidb/templates/multiselection_list_menu.html
new file mode 100644
index 0000000000000000000000000000000000000000..7f5f77fa259aa1b5d7bd30d07b849bf53147f4de
--- /dev/null
+++ b/ippisite/ippidb/templates/multiselection_list_menu.html
@@ -0,0 +1,29 @@
+  <fieldset class="form-group row border border-info m-2">
+    <div class="bg-info col-12">
+        <legend>{{ label }}
+            {% if not all_param_value %}
+              <a href="#" class="float-right text-light" title="Display all {{ label }}s" onclick="modifyUrl('{{ all_param_name }}',true);">[+]</a>
+              <input type="hidden" name="{{ all_param_name }}" value="{{ all_param_value }}" />
+            {% endif %}
+            {% if all_param_value %}
+              <a href="#" class="float-right text-light" title="Show only top 5 {{ label }}s" onclick="modifyUrl('{{ all_param_name }}',null);">[-]</a>
+            {% endif %}
+        </legend>
+    </div>
+    {% for element in selected_list  %}
+    <div class="form-check col-12">
+      <label class="form-check-label">
+        <input 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;">
+        {{ element.name }}
+      </label>
+    </div>
+    {% endfor %}
+    {% 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;">
+        {{ element.name }}
+      </label>
+    </div>
+    {% endfor %}
+  </fieldset>
diff --git a/ippisite/ippidb/templates/pubchem_img.html b/ippisite/ippidb/templates/pubchem_img.html
new file mode 100644
index 0000000000000000000000000000000000000000..ac4019068fde60ffde98f8ef48db9b9bcca64b7e
--- /dev/null
+++ b/ippisite/ippidb/templates/pubchem_img.html
@@ -0,0 +1 @@
+<img src="https://pubchem.ncbi.nlm.nih.gov/image/imagefly.cgi?cid={{ compound.pubchem_id }}&width=300&height=300" style="width:300px;height:300px;"/>
diff --git a/ippisite/ippidb/urls.py b/ippisite/ippidb/urls.py
index cca12b30a93bb841fd3d9a58aad68e98dc119dfb..22560cc734eac2986552cf27df0e366238a6a554 100644
--- a/ippisite/ippidb/urls.py
+++ b/ippisite/ippidb/urls.py
@@ -22,6 +22,7 @@ urlpatterns = [
     url(r'^biblio/(?P<source>\w{2})(?P<id_source>\w+)$', views.biblio_card, name='biblio_card'),
     url(r'^biblio/$', views.biblio_list, name='biblio_list'),
     url(r'^compound/$', views.compound_list, name='compound_list'),
+    url(r'^compound/(?P<compound_id>\w+)$', views.compound_card, name='compound_card'),
     url(r'^tutorials$', views.tutorials, name='tutorials'),
         url(r'^admin-session$', views.adminSession, name='admin-session'),
     url(r'^admin-session/add/(?P<step>.+)/$',
diff --git a/ippisite/ippidb/views.py b/ippisite/ippidb/views.py
index 97347068b5da694a470642edf31d9ceb5b3b4ad7..9cef937c238728acbbc3a47e09d459ecbb0ff751 100644
--- a/ippisite/ippidb/views.py
+++ b/ippisite/ippidb/views.py
@@ -5,7 +5,7 @@ from django.http import HttpResponseRedirect, Http404
 from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
 from formtools.wizard.views import SessionWizardView, NamedUrlSessionWizardView
 from .forms import IdForm, BibliographyForm, PDBForm, ProteinForm, ProteinDomainComplexTypeForm, ProteinDomainComplexForm, ProteinDomainComplexFormSet, PpiForm, PpiComplexForm, ProteinFormSet,TestsForm, CompoundForm, CompoundFormSet
-from .models import Protein, Bibliography, ProteinDomainComplex, RefCompoundBiblio, TestActivityDescription, Compound, Ppi
+from .models import Protein, Bibliography, ProteinDomainComplex, RefCompoundBiblio, TestActivityDescription, Compound, Ppi, Disease, Taxonomy
 from .ws import get_pdb_uniprot_mapping
 
 
@@ -189,12 +189,37 @@ def compound_list(request):
     """
     Display the list of compounds
     """
-    compounds = Compound.objects.all()
+    compounds = Compound.objects.all().order_by('id')
     # if filtering on "action on PPI"
     if request.GET.get('ppi'):
         compounds = compounds.filter(compoundaction__ppi__id__in=request.GET.getlist('ppi'))
-    selected_ppis = Ppi.objects.filter(id__in=request.GET.getlist('ppi')) 
+    if request.GET.get('disease'):
+        compounds = compounds.filter(compoundaction__ppi__diseases__id__in=request.GET.getlist('disease'))
+    if request.GET.get('taxonomy'):
+        compounds = compounds.filter(compoundaction__ppi_id__ppicomplex__complex__protein__organism__id__in=request.GET.getlist('taxonomy'))
+    if request.GET.get('boundcomplexes'):
+        compounds = compounds.filter(compoundaction__ppi_id__ppicomplex__complex__id__in=request.GET.getlist('boundcomplex'))
+    ppis_all = request.GET.get('ppis_all', None)
+    diseases_all = request.GET.get('diseases_all', None)
+    taxonomies_all = request.GET.get('taxonomies_all', None)
+    boundcomplexes_all = request.GET.get('boundcomplexes_all', None)
+    selected_ppis = Ppi.objects.filter(id__in=request.GET.getlist('ppi'))
     ppis = Ppi.objects.exclude(id__in=request.GET.getlist('ppi'))
+    if ppis_all is None:
+        ppis = ppis[:5]
+    selected_diseases = Disease.objects.filter(id__in=request.GET.getlist('disease'))
+    diseases = Disease.objects.exclude(id__in=request.GET.getlist('disease'))
+    if diseases_all is None:
+        diseases = diseases[:5]
+    selected_taxonomies = Taxonomy.objects.filter(id__in=request.GET.getlist('taxonomy'))
+    taxonomies = Taxonomy.objects.exclude(id__in=request.GET.getlist('taxonomy'))
+    if taxonomies_all is None:
+        taxonomies = taxonomies[:5]
+    selected_boundcomplexes = ProteinDomainBoundComplex.objects.filter(id__in=request.GET.getlist('boundcomplex'))
+    boundcomplexes = ProteinDomainBoundComplex.objects.exclude(id__in=request.GET.getlist('boundcomplex'))
+    if boundcomplexes_all is None:
+        boundcomplexes = boundcomplexes[:5]
+    count = compounds.count()
     # handle pagination in compounds list
     paginator = Paginator(compounds, 5)
     page = request.GET.get('page')
@@ -206,4 +231,25 @@ def compound_list(request):
     except EmptyPage:
         # If page is out of range (e.g. 9999), deliver last page of results.
         compounds = paginator.page(paginator.num_pages)
-    return render(request, 'compound_list.html', {'compounds': compounds, 'selected_ppis': selected_ppis, 'ppis': ppis})    
+    return render(request, 'compound_list.html', {'compounds': compounds,
+                                                  'count': count,
+                                                  'selected_ppis': selected_ppis,
+                                                  'ppis': ppis,
+                                                  'ppis_all': ppis_all,
+                                                  'selected_diseases': selected_diseases,
+                                                  'diseases': diseases,
+                                                  'diseases_all': diseases_all,
+                                                  'selected_taxonomies': selected_taxonomies,
+                                                  'taxonomies': taxonomies,
+                                                  'taxonomies_all': taxonomies_all,
+                                                  'selected_boundcomplexes': selected_boundcomplexes,
+                                                  'boundcomplexes': boundcomplexes,
+                                                  'boundcomplexes_all': boundcomplexes_all
+                                                })
+
+def compound_card(request, compound_id):
+    try:
+        compound = Compound.objects.get(id=int(compound_id))
+    except Compound.DoesNotExist:
+        raise Http404("No compound data for %s:%s" % (compound_id))
+    return render(request, 'compound_card.html', {'compound': compound}) 
diff --git a/ippisite/requirements.txt b/ippisite/requirements.txt
index 28362e98454d1ebc8fd6e4d9f1ca8c345fb2d9d6..dc066e8875c6236dd4a70f0ef541332e15c9c566 100644
--- a/ippisite/requirements.txt
+++ b/ippisite/requirements.txt
@@ -1,4 +1,4 @@
-Django
+Django==1.11
 django-bootstrap3
 bioservices
 django-extensions