diff --git a/plstackapi/core/admin.py b/plstackapi/core/admin.py
index 81736ac..acf4c7d 100644
--- a/plstackapi/core/admin.py
+++ b/plstackapi/core/admin.py
@@ -163,6 +163,16 @@
         ('Sliver', {'fields': ['ip', 'name', 'slice', 'flavor', 'image', 'key', 'node', 'deploymentNetwork']})
     ]
     list_display = ['ip', 'name', 'slice', 'flavor', 'image', 'key', 'node', 'deploymentNetwork']
+
+    def save_model(self, request, obj, form, change):
+        client = OpenStackClient(tenant=obj.slice.name, **request.session.get('auth', {}))
+        obj.driver = OpenStackDriver(client=client)
+        obj.save()
+
+    def delete_model(self, request, obj):
+        client = OpenStackClient(tenant=obj.slice.name, **request.session.get('auth', {}))
+        obj.driver = OpenStackDriver(client=client)
+        obj.delete()
      
 
 class UserCreationForm(forms.ModelForm):
@@ -209,7 +219,7 @@
         return self.initial["password"]
 
 
-class PLUserAdmin(UserAdmin):
+class PLUserAdmin(UserAdmin, OSModelAdmin):
     class Meta:
         app_label = "core"
 
diff --git a/plstackapi/core/models/pluser.py b/plstackapi/core/models/pluser.py
index 0e8f9d9..1c01a42 100644
--- a/plstackapi/core/models/pluser.py
+++ b/plstackapi/core/models/pluser.py
@@ -3,6 +3,7 @@
 from django.db import models
 from plstackapi.core.models import PlCoreBase
 from plstackapi.core.models import Site
+from plstackapi.openstack.driver import OpenStackDriver
 from django.contrib.auth.models import User, AbstractBaseUser, UserManager, BaseUserManager
 
 # Create your models here.
@@ -54,7 +55,7 @@
         db_index=True,
     )
 
-    
+    user_id = models.CharField(help_text="keystone user id", max_length=200) 
     firstname = models.CharField(help_text="person's given name", max_length=200)
     lastname = models.CharField(help_text="person's surname", max_length=200)
 
@@ -99,3 +100,22 @@
         return self.is_admin
 
 
+    def save(self, *args, **kwds):
+        if not self.user_id:
+            if not hasattr(self, 'driver'):
+                setattr(self, 'driver', OpenStackDriver())
+            name = self.email[:self.email.find('@')]
+            user_fields = {'name': name,
+                           'email': self.email,
+                           'password': self.password,
+                           'enabled': self.is_active}
+            user = self.driver.create_user(**user_fields)
+            self.user_id = user.id
+        super(PLUser, self).save(*args, **kwds)   
+
+    def delete(self, *args, **kwds):
+        if self.user_id:
+            if not getattr(self, 'driver'):
+                setattr(self, 'driver', OpenStackDriver())
+            self.driver.delete_user(self.user_id)
+        super(PLUser, self).delete(*args, **kwds)    
