diff --git a/ippisite/db.sqlite3 b/ippisite/db.sqlite3
index 8606d46f594d3b1d168826016966cfb95c9e8726..7ec7dd61212668b2fff2d44382e67427c4c30d13 100644
Binary files a/ippisite/db.sqlite3 and b/ippisite/db.sqlite3 differ
diff --git a/ippisite/ippidb/migrations/0018_auto_20170522_1501.py b/ippisite/ippidb/migrations/0018_auto_20170522_1501.py
new file mode 100644
index 0000000000000000000000000000000000000000..2986ba98f06fc35caa42f508d3876dc97978a3d9
--- /dev/null
+++ b/ippisite/ippidb/migrations/0018_auto_20170522_1501.py
@@ -0,0 +1,41 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.1 on 2017-05-22 15:01
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('ippidb', '0017_auto_20170519_1500'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='MDDRActivityClass',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('activity_class', models.CharField(max_length=100, unique=True, verbose_name='Activity Class')),
+            ],
+            options={
+                'verbose_name_plural': 'MDDR activity classes',
+            },
+        ),
+        migrations.AlterUniqueTogether(
+            name='mddrcompoundactivityclass',
+            unique_together=set([]),
+        ),
+        migrations.RemoveField(
+            model_name='mddrcompoundactivityclass',
+            name='mddr_compound',
+        ),
+        migrations.DeleteModel(
+            name='MDDRCompoundActivityClass',
+        ),
+        migrations.AddField(
+            model_name='mddrcompoundimport',
+            name='activity_classes',
+            field=models.ManyToManyField(to='ippidb.MDDRActivityClass'),
+        ),
+    ]
diff --git a/ippisite/ippidb/models.py b/ippisite/ippidb/models.py
index 00dd5ee9c3bc07a873fd14ccc08742f0e2d64d2c..48fb10e3e572e09bb0d6d417c1f654449194c7e8 100644
--- a/ippisite/ippidb/models.py
+++ b/ippisite/ippidb/models.py
@@ -243,6 +243,15 @@ class Compound(models.Model):
     mddr_compound = models.ForeignKey('MDDRCompoundImport', blank=True, null=True)  
 
 
+class MDDRActivityClass(models.Model):
+    activity_class = models.CharField('Activity Class', max_length=100, unique=True)  
+
+    class Meta:
+        verbose_name_plural = "MDDR activity classes"
+
+    def __str__(self):
+        return self.activity_class
+
 class MDDRCompoundImport(models.Model):
     mddr_compound_id = models.IntegerField('MDDR compound ID')  
     mddr_name = models.CharField('MDDR name', max_length=40)  
@@ -250,6 +259,7 @@ class MDDRCompoundImport(models.Model):
     canonical_smile = models.CharField('Canonical Smile', max_length=500, unique=True, blank=True, null=True)  
     #TODO index this table on canonical_smile
     db_import_date = models.DecimalField('MDDR release year/month', max_digits=6, decimal_places=0)  
+    activity_classes = models.ManyToManyField(MDDRActivityClass)
 
     class Meta:
         # over multiple releases of the MDDR database, the same compound can evolve in its development phase
@@ -257,16 +267,6 @@ class MDDRCompoundImport(models.Model):
         unique_together = (('mddr_compound_id', 'mddr_name', 'dvpmt_phase'),)
         verbose_name_plural = "MDDR compound imports"
 
-
-class MDDRCompoundActivityClass(models.Model):
-    mddr_compound = models.ForeignKey(MDDRCompoundImport)  
-    activity_class = models.CharField('Activity Class', max_length=100)  
-
-    class Meta:
-        unique_together = (('mddr_compound', 'activity_class'),)
-        verbose_name_plural = "MDDR compound activity classes"
-
-
 class MDDRSimilarity(models.Model):
     canonical_smile_ippidb = models.CharField('Canonical Smile for IPPIDB compound', max_length=500, unique=True, blank=True, null=True)
     canonical_smile_mddr = models.CharField('Canonical Smile for MDDR Compound', max_length=500, unique=True, blank=True, null=True)