diff --git a/samples/README.md b/samples/README.md
index d75b705..0d3c2cf 100644
--- a/samples/README.md
+++ b/samples/README.md
@@ -26,4 +26,6 @@
 
 ```bash
 bash progran-curl.sh progran/progranserviceinstances profile.json
-```
\ No newline at end of file
+```
+
+curl -U xosadmin@opencord.org:bash -X PUT --data-binary @profile.json http://127.0.0.1:9101/xosapi/v1/progran/progranserviceinstances/4
\ No newline at end of file
diff --git a/samples/profile.json b/samples/profile.json
index d51a386..3ebb1c4 100644
--- a/samples/profile.json
+++ b/samples/profile.json
@@ -1,4 +1,3 @@
-
 {
   "name":"testcem",
   "DlSchedType":"RR",
@@ -12,5 +11,7 @@
   "SubsProfile":"",
   "DlWifiRate":13,
   "DlUeAllocRbRate":12,
-  "handover_id": 1
+  "handover_id": 1,
+  "id": 4,
+  "enodeb_id": 0
 }
\ No newline at end of file
diff --git a/xos/models/models.py b/xos/models/models.py
index 295c172..f8edcc7 100644
--- a/xos/models/models.py
+++ b/xos/models/models.py
@@ -63,6 +63,9 @@
 
         if instances_with_same_name:
             raise XOSValidationError("A ProgranServiceInstance with name '%s' already exists" % self.name)
+
+
+        # TODO when saving set status to "in progress"
         super(ProgranServiceInstance, self).save(*args, **kwargs)
 
 
diff --git a/xos/synchronizer/steps/sync_progranserviceinstance.py b/xos/synchronizer/steps/sync_progranserviceinstance.py
index 4daf104..bcfadfd 100644
--- a/xos/synchronizer/steps/sync_progranserviceinstance.py
+++ b/xos/synchronizer/steps/sync_progranserviceinstance.py
@@ -37,6 +37,10 @@
 
     observes = ProgranServiceInstance
 
+    # NOTE I need to keep track of the relations between profile and enodebs to remove them
+    # it contains: <profile-id>:<enodeb_id>
+    profile_enodebs = {}
+
     def skip_ansible_fields(self, o):
         # FIXME This model does not have an instance, this is a workaroung to make it work,
         # but it need to be cleaned up creating a general SyncUsingAnsible base class
@@ -103,7 +107,7 @@
 
         # progran enodeb specific fields
         if o.enodeb:
-            log.info("adding profile to enodeb", object=str(o), **o.tologdict())
+            log.info("adding profile %s to enodeb %s" % (o.id, o.enodeb.enbId), object=str(o), **o.tologdict())
             enodeb_fields = {
                 'body': json.dumps({
                     "ProfileArray": [
@@ -116,9 +120,26 @@
             enodeb_fields["ansible_tag"] =  o.__class__.__name__ + "_" + str(o.id) + "_enodeb_to_profile"
             enodeb_fields.update(base_field)
             self.run_playbook(o, enodeb_fields)
-        else:
-            log.warn("IMPLEMENT THE CALL TO REMOVE A PROFILE FROM ENODEB")
 
+            # update local state
+            self.profile_enodebs[o.id] = o.enodeb.enbId
+        else:
+            try:
+                enbid = self.profile_enodebs[o.id]
+            except KeyError:
+                enbid = None
+            if enbid:
+                print enbid
+                log.info("removing profile %s from enodeb %s" % (o.id, self.profile_enodebs[o.id]), object=str(o), **o.tologdict())
+                enodeb_fields = {
+                    'body': '',
+                    'method': 'DELETE',
+                    'endpoint': 'enodeb/%s/profile/%s' % (enbid, o.name)
+                }
+                enodeb_fields["ansible_tag"] = o.__class__.__name__ + "_" + str(o.id) + "_rm_enodeb_from_profile"
+                enodeb_fields.update(base_field)
+                self.run_playbook(o, enodeb_fields)
+                del self.profile_enodebs[o.id]
 
         o.save()
 
