diff --git a/plstackapi/core/api/keys.py b/plstackapi/core/api/keys.py
index ad54041..3b70cac 100644
--- a/plstackapi/core/api/keys.py
+++ b/plstackapi/core/api/keys.py
@@ -2,7 +2,7 @@
 from plstackapi.openstack.client import OpenStackClient
 from plstackapi.openstack.driver import OpenStackDriver
 from plstackapi.core.api.auth import auth_check
-from plstackapi.core.models import Key, User
+from plstackapi.core.models import Key
 from plstackapi.core.api.users import _get_users
 
 
diff --git a/plstackapi/core/api/site_privileges.py b/plstackapi/core/api/site_privileges.py
index 73280c6..ac56dd1 100644
--- a/plstackapi/core/api/site_privileges.py
+++ b/plstackapi/core/api/site_privileges.py
@@ -3,7 +3,7 @@
 from plstackapi.openstack.client import OpenStackClient
 from plstackapi.openstack.driver import OpenStackDriver
 from plstackapi.core.api.auth import auth_check
-from plstackapi.core.models import SitePrivilege, Site, Role, User
+from plstackapi.core.models import SitePrivilege
 from plstackapi.core.api.users import _get_users
 from plstackapi.core.api.sites import _get_sites
 from plstackapi.core.api.roles import _get_roles
diff --git a/plstackapi/core/api/slice_memberships.py b/plstackapi/core/api/slice_memberships.py
index 54a1cba..431552d 100644
--- a/plstackapi/core/api/slice_memberships.py
+++ b/plstackapi/core/api/slice_memberships.py
@@ -2,7 +2,7 @@
 from plstackapi.openstack.client import OpenStackClient
 from plstackapi.openstack.driver import OpenStackDriver
 from plstackapi.core.api.auth import auth_check
-from plstackapi.core.models import SliceMembership, Slice, Role, User
+from plstackapi.core.models import SliceMembership
 from plstackapi.core.api.users import _get_users
 from plstackapi.core.api.slices import _get_slices
 from plstackapi.core.api.roles import _get_roles
diff --git a/plstackapi/core/api/users.py b/plstackapi/core/api/users.py
index 7483c37..5b89389 100644
--- a/plstackapi/core/api/users.py
+++ b/plstackapi/core/api/users.py
@@ -2,18 +2,18 @@
 from plstackapi.openstack.client import OpenStackClient
 from plstackapi.openstack.driver import OpenStackDriver
 from plstackapi.core.api.auth import auth_check
-from plstackapi.core.models import User, Site
+from plstackapi.core.models import PLUser, Site
 from plstackapi.core.api.sites import _get_sites
 
 def _get_users(filter):
     if isinstance(filter, StringTypes) and filter.isdigit():
         filter = int(filter)
     if isinstance(filter, int):
-        users = User.objects.filter(id=filter)
+        users = PLUser.objects.filter(id=filter)
     elif isinstance(filter, StringTypes):
-        users = User.objects.filter(email=filter)
+        users = PLUser.objects.filter(email=filter)
     elif isinstance(filter, dict):
-        users = User.objects.filter(**filter)
+        users = PLUser.objects.filter(**filter)
     else:
         users = []
     return users 
@@ -22,7 +22,7 @@
     driver = OpenStackDriver(client = auth_check(auth))
     sites = _get_sites(fields.get('site')) 
     if sites: fields['site'] = sites[0]     
-    user = User(**fields)
+    user = PLUser(**fields)
     nova_fields = {'name': user.email[:user.email.find('@')],
                    'email': user.email, 
                    'password': fields.get('password'),
@@ -35,7 +35,7 @@
 
 def update_user(auth, id, **fields):
     driver = OpenStackDriver(client = auth_check(auth))
-    users = User.objects.filter(id=id)
+    users = PLUser.objects.filter(id=id)
     if not users:
         return
 
diff --git a/plstackapi/core/models/__init__.py b/plstackapi/core/models/__init__.py
index 5f962e3..1c87f34 100644
--- a/plstackapi/core/models/__init__.py
+++ b/plstackapi/core/models/__init__.py
@@ -1,15 +1,15 @@
-from .plcorebase import PlCoreBase
-from .deploymentnetwork import DeploymentNetwork
-from .site import Site
-from .site import SitePrivilege
-from .flavor import Flavor
-from .image import Image
-from .user import PLUser
-from .role import Role
-from .key import Key
-from .node import Node
-from .slice import Slice
-from .slice import SliceMembership
-from .sliver import Sliver
-from .subnet import Subnet
+from plstackapi.core.models.plcorebase import PlCoreBase
+from plstackapi.core.models.deploymentnetwork import DeploymentNetwork
+from plstackapi.core.models.site import Site
+from plstackapi.core.models.site import SitePrivilege
+from plstackapi.core.models.flavor import Flavor
+from plstackapi.core.models.image import Image
+from plstackapi.core.models.pluser import PLUser
+from plstackapi.core.models.role import Role
+from plstackapi.core.models.key import Key
+from plstackapi.core.models.node import Node
+from plstackapi.core.models.slice import Slice
+from plstackapi.core.models.slice import SliceMembership
+from plstackapi.core.models.sliver import Sliver
+from plstackapi.core.models.subnet import Subnet
 
diff --git a/plstackapi/core/models/pluser.py b/plstackapi/core/models/pluser.py
index a59cb97..0e8f9d9 100644
--- a/plstackapi/core/models/pluser.py
+++ b/plstackapi/core/models/pluser.py
@@ -1,8 +1,8 @@
 import os
 import datetime
 from django.db import models
-from core.models import PlCoreBase
-from core.models import Site
+from plstackapi.core.models import PlCoreBase
+from plstackapi.core.models import Site
 from django.contrib.auth.models import User, AbstractBaseUser, UserManager, BaseUserManager
 
 # Create your models here.
diff --git a/plstackapi/core/serializers.py b/plstackapi/core/serializers.py
index 2b70357..2cc88e0 100644
--- a/plstackapi/core/serializers.py
+++ b/plstackapi/core/serializers.py
@@ -20,7 +20,7 @@
     slice_memberships = serializers.HyperlinkedRelatedField(view_name='slice-membership-detail')
     site_privileges = serializers.HyperlinkedRelatedField(view_name='site-privilege-detail')
     class Meta:
-        model = User
+        model = PLUser
         fields = ('id',
                   'user_id', 
                   'firstname', 
@@ -207,7 +207,7 @@
 
 serializerLookUp = { 
                  Role: RoleSerializer,
-                 User: UserSerializer,
+                 PLUser: UserSerializer,
                  Key: KeySerializer,
                  Site: SiteSerializer,
                  SitePrivilege: SitePrivilegeSerializer,
