diff --git a/scipost/factories.py b/scipost/factories.py
index 7381d6173165155478253327f9aacac1665129c7..a10f06c567ecc6caab4e3ce5b65802f4da100b88 100644
--- a/scipost/factories.py
+++ b/scipost/factories.py
@@ -4,16 +4,16 @@ import random
 from django.contrib.auth import get_user_model
 from django.contrib.auth.models import Group
 
-from django_countries.data import COUNTRIES
+from submissions.models import Submission
 
-from .models import Contributor, EditorialCollege, EditorialCollegeFellowship
+from .models import Contributor, EditorialCollege, EditorialCollegeFellowship, Remark
 from .constants import TITLE_CHOICES
 
+from django_countries.data import COUNTRIES
+from faker import Faker
 
-class ContributorFactory(factory.django.DjangoModelFactory):
-    class Meta:
-        model = Contributor
 
+class ContributorFactory(factory.django.DjangoModelFactory):
     title = random.choice(list(dict(TITLE_CHOICES).keys()))
     user = factory.SubFactory('scipost.factories.UserFactory', contributor=None)
     status = 1  # normal user
@@ -22,6 +22,10 @@ class ContributorFactory(factory.django.DjangoModelFactory):
     country_of_employment = factory.Iterator(list(COUNTRIES))
     affiliation = factory.Faker('company')
 
+    class Meta:
+        model = Contributor
+        django_get_or_create = ('user',)
+
 
 class VettingEditorFactory(ContributorFactory):
     @factory.post_generation
@@ -32,9 +36,6 @@ class VettingEditorFactory(ContributorFactory):
 
 
 class UserFactory(factory.django.DjangoModelFactory):
-    class Meta:
-        model = get_user_model()
-
     username = factory.Faker('user_name')
     password = factory.PostGenerationMethodCall('set_password', 'adm1n')
     email = factory.Faker('safe_email')
@@ -44,6 +45,9 @@ class UserFactory(factory.django.DjangoModelFactory):
     # When user object is created, associate new Contributor object to it.
     contributor = factory.RelatedFactory(ContributorFactory, 'user')
 
+    class Meta:
+        model = get_user_model()
+
     @factory.post_generation
     def groups(self, create, extracted, **kwargs):
         # If the object is not saved, we cannot use many-to-many relationship.
@@ -58,17 +62,27 @@ class UserFactory(factory.django.DjangoModelFactory):
 
 
 class EditorialCollegeFactory(factory.django.DjangoModelFactory):
+    discipline = random.choice(['Physics', 'Chemistry', 'Medicine'])
+
     class Meta:
         model = EditorialCollege
         django_get_or_create = ('discipline', )
 
-    discipline = random.choice(['Physics', 'Chemistry', 'Medicine'])
-
 
 class EditorialCollegeFellowshipFactory(factory.django.DjangoModelFactory):
-    class Meta:
-        model = EditorialCollegeFellowship
-
     college = factory.Iterator(EditorialCollege.objects.all())
     contributor = factory.Iterator(Contributor.objects.exclude(
                                    user__username='deleted').order_by('?'))
+
+    class Meta:
+        model = EditorialCollegeFellowship
+
+
+class SubmissionRemarkFactory(factory.django.DjangoModelFactory):
+    contributor = factory.Iterator(Contributor.objects.all())
+    submission = factory.Iterator(Submission.objects.all())
+    date = factory.Faker('date_time_this_decade')
+    remark = factory.lazy_attribute(lambda x: Faker().paragraph())
+
+    class Meta:
+        model = Remark