diff --git a/profiles/models.py b/profiles/models.py
index fb5c28226884078d074b6c36a333e51738c85684..95fefb225f088b0c7ba056db1d745fa8f4c957fa 100644
--- a/profiles/models.py
+++ b/profiles/models.py
@@ -11,8 +11,10 @@ from scipost.constants import (
     TITLE_CHOICES, SCIPOST_DISCIPLINES, DISCIPLINE_PHYSICS, SCIPOST_SUBJECT_AREAS)
 from scipost.fields import ChoiceArrayField
 
+from comments.models import Comment
+from journals.models import Publication, PublicationAuthorsTable
 from ontology.models import Topic
-from journals.models import PublicationAuthorsTable
+from theses.models import ThesisLink
 
 from .managers import ProfileQuerySet
 
@@ -74,6 +76,26 @@ class Profile(models.Model):
     def get_absolute_url(self):
         return reverse('profiles:profile_detail', kwargs={'pk': self.id})
 
+    def publications(self):
+        """
+        Returns all the publications associated to this Profile.
+        """
+        return Publication.objects.published().filter(
+            models.Q(authors__unregistered_author__profile=self) |
+            models.Q(authors__contributor__profile=self))
+
+    def comments(self):
+        """
+        Returns all the Comments associated to this Profile.
+        """
+        return Comment.objects.filter(author__profile=self)
+
+    def theses(self):
+        """
+        Returns all the Theses associated to this Profile.
+        """
+        return ThesisLink.objects.filter(author_as_cont__profile=self)
+
 
 class ProfileEmail(models.Model):
     """Any email related to a Profile instance."""
diff --git a/profiles/templates/profiles/_profile_card.html b/profiles/templates/profiles/_profile_card.html
index 4ed906fb4772520e8593bd147e700e1e705e690f..fa8d437ba1425ca865a0d098aec72cef4f8f7026 100644
--- a/profiles/templates/profiles/_profile_card.html
+++ b/profiles/templates/profiles/_profile_card.html
@@ -1,9 +1,13 @@
 {% load bootstrap %}
 {% load scipost_extras %}
 
-<div class="card-body">
-  <div class="row">
-    <div class="col-6">
+
+
+  <div class="card">
+    <div class="card-header">
+      Details
+    </div>
+    <div class="card-body">
       <table class="table">
 	<tr>
 	  <td>Name:</td><td>{{ profile.last_name }}, {{ profile.get_title_display }} {{ profile.first_name }}</td>
@@ -11,7 +15,7 @@
 	<tr>
 	  <td>Email(s)</td>
 	  <td>
-	    <table class="table table-sm table-borderless">
+	    <table class="table">
             <thead>
                 <tr>
                     <th colspan="2">Email</th>
@@ -51,22 +55,17 @@
 	<tr><td>Accepts SciPost emails</td><td>{{ profile.accepts_SciPost_emails }}</td></tr>
 	<tr><td>Accepts refereeing requests</td><td>{{ profile.accepts_refereeing_requests }}</td></tr>
 	<tr><td>Contributor</td><td>{% if profile.contributor %}Yes (<a href="{% url 'scipost:contributor_info' contributor_id=profile.contributor.id %}" target="_blank">info link</a>){% else %}No{% endif %}</td></tr>
-	<tr>
-	  <td>Referee Invitations</td>
-	  <td>
-	    <ul>
-	      {% for inv in profile.refereeinvitation_set.all %}
-	      <li>{{ inv.submission.title }}<br/>(invited {{ inv.date_invited }}; fulfilled: {% if inv.fulfilled %}<i class="fa fa-check-square text-success"></i>{% else %}<i class="fa fa-times-circle"></i>{% endif %})</li>
-	      {% empty %}
-	      <li>No refereeing invitation found</li>
-	      {% endfor %}
-	    </ul>
-	  </td>
-	</tr>
       </table>
     </div>
-    <div class="col-6">
-      <h4>Actions:</h4>
+  </div>
+
+<div class="card-columns">
+
+  <div class="card">
+    <div class="card-header">
+      Actions
+    </div>
+    <div class="card-body">
       <ul>
 	<li><a href="{% url 'profiles:profile_update' pk=profile.id %}">Update</a> this Profile</li>
 	<li><a href="{% url 'profiles:profile_delete' pk=profile.id %}">Delete</a> this Profile</li>
@@ -85,4 +84,62 @@
       </ul>
     </div>
   </div>
+
+  <div class="card">
+    <div class="card-header">
+      Refereeing invitations
+    </div>
+    <div class="card-body">
+      <ul>
+	{% for inv in profile.refereeinvitation_set.all %}
+	<li>{{ inv.submission.title }}<br/>(invited {{ inv.date_invited }}; fulfilled: {% if inv.fulfilled %}<i class="fa fa-check-square text-success"></i>{% else %}<i class="fa fa-times-circle"></i>{% endif %})</li>
+	{% empty %}
+	<li>No refereeing invitation found</li>
+	{% endfor %}
+      </ul>
+    </div>
+  </div>
+
+  <div class="card">
+    <div class="card-header">
+      Publications
+    </div>
+    <div class="card-body">
+      <ul>
+	{% for pub in profile.publications.all %}
+	<li><a href="{{ pub.get_absolute_url }}">{{ pub.citation }}</a></li>
+	{% empty %}
+	<li>No Publication found</li>
+	{% endfor %}
+      </ul>
+    </div>
+  </div>
+
+
+  <div class="card">
+    <div class="card-header">
+      Comments
+    </div>
+    <div class="card-body">
+      {% for comment in profile.comments.all %}
+      <li><a href="{{ comment.get_absolute_url }}">{{ comment }}</a></li>
+      {% empty %}
+      <li>No Comment found</li>
+      {% endfor %}
+    </div>
+  </div>
+
+  <div class="card">
+    <div class="card-header">
+      Theses
+    </div>
+    <div class="card-body">
+      {% for thesis in profile.theses.all %}
+      <li><a href="{{ thesis.get_absolute_url }}">{{ thesis }}</a></li>
+      {% empty %}
+      <li>No Thesis found</li>
+      {% endfor %}
+    </div>
+  </div>
+
 </div>
diff --git a/profiles/templates/profiles/profile_list.html b/profiles/templates/profiles/profile_list.html
index b36055f39e09b57074bed6bdf6f665798209e456..0239e6dc7026929099dd52261c88a969bd68daf2 100644
--- a/profiles/templates/profiles/profile_list.html
+++ b/profiles/templates/profiles/profile_list.html
@@ -2,13 +2,22 @@
 
 {% load bootstrap %}
 {% load add_get_parameters %}
+{% load scipost_extras %}
 
 {% block breadcrumb_items %}
     {{ block.super }}
     <span class="breadcrumb-item">Profiles</span>
 {% endblock %}
 
-{% load scipost_extras %}
+{% block headsup %}
+<script type="text/javascript">
+$(document).ready(function($) {
+    $(".table-row").click(function() {
+        window.document.location = $(this).data("href");
+    });
+});
+</script>
+{% endblock headsup %}
 
 {% block pagetitle %}: Profiles{% endblock pagetitle %}
 
@@ -95,6 +104,38 @@
   <div class="col-12">
     <h3>Profiles {% if request.GET.text %}with last name starting with {{ request.GET.text }}{% endif %} {% if request.GET.discipline %}in {{ request.GET.discipline }}{% if request.GET.expertise %}, {{ request.GET.expertise }}{% endif %}{% endif %} ({% if request.GET.contributor == "True" %}registered Contributors{% elif request.GET.contributor == "False" %}unregistered as Contributors{% else %}all registered/unregistered{% endif %}): {{ page_obj.paginator.count }} found</h3>
     <br/>
+
+    <table class="table table-hover mb-5">
+      <thead class="thead-default">
+	<tr>
+	  <th>Name</th>
+	  <th>Discipline</th>
+	  <th>Expertises</th>
+	  <th>Contributor?</th>
+	</tr>
+      </thead>
+      <tbody>
+	{% for profile in object_list %}
+	<tr class="table-row" data-href="{% url 'profiles:profile_detail' pk=profile.id %}" target="_blank" style="cursor: pointer;">
+	  <td>{{ profile.last_name }}, {{ profile.get_title_display }} {{ profile.first_name }}</td>
+	  <td>{{ profile.get_discipline_display }}</td>
+	  <td>
+	    {% for expertise in profile.expertises %}
+            <div class="single d-inline" data-specialization="{{expertise|lower}}" data-toggle="tooltip" data-placement="bottom" title="{{expertise|get_specialization_display}}">{{expertise|get_specialization_code}}</div>
+	    {% endfor %}
+	  </td>
+	  <td>{% if profile.contributor %}<i class="fa fa-check-circle text-success"></i>{% else %}<i class="fa fa-times-circle text-danger"></i>{% endif %}</td>
+	</tr>
+	{% empty %}
+	<tr>
+	  <td colspan="4">No Profiles found</td>
+	</tr>
+	{% endfor %}
+      </tbody>
+    </table>
+
+
+
     <table class="table table-hover mb-5">
       <thead class="thead-default">
 	<tr>
diff --git a/profiles/views.py b/profiles/views.py
index 9f6e60db815a6b95009d3a3db701e2ac89fc4fed..737eb6afe9f8d1ceb8eedf21a34478e807b0a8d0 100644
--- a/profiles/views.py
+++ b/profiles/views.py
@@ -180,6 +180,11 @@ class ProfileDetailView(PermissionsMixin, DetailView):
     permission_required = 'scipost.can_view_profiles'
     model = Profile
 
+    def get_context_data(self, *args, **kwargs):
+        context = super().get_context_data(*args, **kwargs)
+        context['email_form'] = ProfileEmailForm()
+        return context
+
 
 class ProfileListView(PermissionsMixin, PaginationMixin, ListView):
     """