diff --git a/pkg/control/registry.go b/pkg/control/registry.go
index 98aa97e..03e90ae 100644
--- a/pkg/control/registry.go
+++ b/pkg/control/registry.go
@@ -24,11 +24,11 @@
 	"sync"
 )
 
-var registryMutex = &sync.Mutex{}
 
 type Registry struct {
 	register map[uint16]bool
 	counter  uint16
+	mutex sync.Mutex
 }
 
 // This method should run as a constructor
@@ -40,8 +40,8 @@
 // Reserves and returns the next free sequence number
 func (r *Registry) ReserveSequenceNumber() (uint16, bool) {
 	// Check is current SequenceNumber valid
-	registryMutex.Lock()
-	defer registryMutex.Unlock()
+	r.mutex.Lock()
+	defer r.mutex.Unlock()
 	sequenceNumber := r.counter
 	if _, ok := r.register[sequenceNumber]; ok {
 		xapp.Logger.Error("Invalid SeqenceNumber sequenceNumber: %v",sequenceNumber)
@@ -60,8 +60,8 @@
 
 // This function checks the validity of the given subscription id
 func (r *Registry) IsValidSequenceNumber(sn uint16) bool {
-	registryMutex.Lock()
-	defer registryMutex.Unlock()
+	r.mutex.Lock()
+	defer r.mutex.Unlock()
 	xapp.Logger.Debug("Registry map: %v", r.register)
 	if _, ok := r.register[sn]; ok {
 		return true
@@ -71,26 +71,26 @@
 
 // This function sets the give id as confirmed in the register
 func (r *Registry) setSubscriptionToConfirmed(sn uint16) {
-	registryMutex.Lock()
-	defer registryMutex.Unlock()
+	r.mutex.Lock()
+	defer r.mutex.Unlock()
 	r.register[sn] = true
 }
 
 //This function sets the given id as unused in the register
 func (r *Registry) deleteSubscription(sn uint16) {
-	registryMutex.Lock()
-	defer registryMutex.Unlock()
+	r.mutex.Lock()
+	defer r.mutex.Unlock()
 	r.register[sn] = false
 }
 
 //This function releases the given id as unused in the register
 func (r *Registry) releaseSequenceNumber(sn uint16) bool {
-	registryMutex.Lock()
-	defer registryMutex.Unlock()
-	if r.register[sn] {
-		return false
-		} else {
+	r.mutex.Lock()
+	defer r.mutex.Unlock()
+	if _, ok := r.register[sn]; ok {
 		delete(r.register, sn)
 		return true
+	} else {
+		return false
 	}
 }
