diff --git a/planetstack/core/models/__init__.py b/planetstack/core/models/__init__.py
index 6fcc8fd..480bd46 100644
--- a/planetstack/core/models/__init__.py
+++ b/planetstack/core/models/__init__.py
@@ -1,4 +1,4 @@
-from .plcorebase import PlCoreBase,PlCoreBaseManager,PlCoreBaseDeletionManager,DiffModelMixIn
+from .plcorebase import PlCoreBase,PlCoreBaseManager,PlCoreBaseDeletionManager,PlModelMixIn
 from .project import Project
 from .singletonmodel import SingletonModel
 from .service import Service
diff --git a/planetstack/core/models/plcorebase.py b/planetstack/core/models/plcorebase.py
index 31d98a1..5d546b7 100644
--- a/planetstack/core/models/plcorebase.py
+++ b/planetstack/core/models/plcorebase.py
@@ -50,11 +50,13 @@
     def get_query_set(self):
         return self.get_queryset()
 
-class DiffModelMixIn(object):
+class PlModelMixIn(object):
     # Provides useful methods for computing which objects in a model have
     # changed. Make sure to do self._initial = self._dict in the __init__
     # method.
 
+    # Also includes useful utility, like getValidators
+
     # This is broken out of PlCoreBase into a Mixin so the User model can
     # also make use of it.
 
@@ -106,7 +108,7 @@
             validators[field.name] = l
         return validators
 
-class PlCoreBase(models.Model, DiffModelMixIn):
+class PlCoreBase(models.Model, PlModelMixIn):
     objects = PlCoreBaseManager()
     deleted_objects = PlCoreBaseDeletionManager()
 
@@ -133,7 +135,7 @@
 
     def __init__(self, *args, **kwargs):
         super(PlCoreBase, self).__init__(*args, **kwargs)
-        self._initial = self._dict # for DiffModelMixIn
+        self._initial = self._dict # for PlModelMixIn
         self.silent = False
 
     def can_update(self, user):
diff --git a/planetstack/core/models/user.py b/planetstack/core/models/user.py
index 2f75db7..fda4401 100644
--- a/planetstack/core/models/user.py
+++ b/planetstack/core/models/user.py
@@ -7,7 +7,7 @@
 from django.db import models
 from django.db.models import F, Q
 from django.utils import timezone
-from core.models import PlCoreBase,Site, DashboardView, DiffModelMixIn
+from core.models import PlCoreBase,Site, DashboardView, PlModelMixIn
 from django.contrib.auth.models import AbstractBaseUser, BaseUserManager
 from timezones.fields import TimeZoneField
 from operator import itemgetter, attrgetter
@@ -84,7 +84,7 @@
     def get_query_set(self):
         return self.get_queryset()
 
-class User(AbstractBaseUser, DiffModelMixIn):
+class User(AbstractBaseUser, PlModelMixIn):
     @property
     def remote_password(self):
         return hashlib.md5(self.password).hexdigest()[:12]
@@ -138,7 +138,7 @@
 
     def __init__(self, *args, **kwargs):
         super(User, self).__init__(*args, **kwargs)
-        self._initial = self._dict # for DiffModelMixIn
+        self._initial = self._dict # for PlModelMixIn
 
     def isReadOnlyUser(self):
         return self.is_readonly
diff --git a/planetstack/servcomp/models.py b/planetstack/servcomp/models.py
index 3c17ffd..192554a 100644
--- a/planetstack/servcomp/models.py
+++ b/planetstack/servcomp/models.py
@@ -1,5 +1,5 @@
 from django.db import models
-from core.models import User, Service, SingletonModel, PlCoreBase, DiffModelMixIn
+from core.models import User, Service, SingletonModel, PlCoreBase
 import os
 from django.db import models
 from django.forms.models import model_to_dict
