diff --git a/applications/rtdt-manager/rtdt-manager/rtdt-manager.go b/applications/rtdt-manager/rtdt-manager/rtdt-manager.go
index da1d86eeba2bf80bbd573a65aff7f54e85278130..10d96bde226cfa8484def426b5fe0ee997bde76a 100644
--- a/applications/rtdt-manager/rtdt-manager/rtdt-manager.go
+++ b/applications/rtdt-manager/rtdt-manager/rtdt-manager.go
@@ -185,13 +185,11 @@ func (r *RtdtManager) updateMNECallback(event *event.Event) {
 			}
 		}
 
+        // MTU Change
 		if strings.HasPrefix(path, prefix) && strings.HasSuffix(path, suffixMTU) {
 			fmt.Println("--- CHANGE MTU TRIGGERED ---")
 			fmt.Println("Value of new MTU: ", value)
-			// TODO: ONLY APPLY THIS TO A RELEVANT TWIN
-			for _, twin := range r.rtdt_twins {
-				twin.SetGnmiPath(path, value, twinEntityID)
-			}
+			twin.SetGnmiPath(path, value, twinEntityID)
 		}
 		// Hostname change
 		if strings.HasPrefix(path, prefixHostname) {
@@ -212,7 +210,12 @@ func (r *RtdtManager) updateMNECallback(event *event.Event) {
 			fmt.Println("Setting interface", match[1], "UP/DOWN")
 			fmt.Printf("match: %v\n", match)
 			path := "/interfaces/interface[name=" + match[1] + "]/config/enabled"
-			r.rtdt_twins[0].SetGnmiPath(path, value, twinEntityID)
+			if value == "DOWN" {
+				value = "false"
+			} else {
+				value = "true"
+			}
+			twin.SetGnmiPath(path, value, twinEntityID)
 		}
 	}
 }
diff --git a/applications/rtdt-manager/venv/venv.go b/applications/rtdt-manager/venv/venv.go
index 19ed241255bf6bb1a4f86ffd4882da5f102e793d..57d80f53dc9b3a7891b62c42f76a75f6b89143ca 100644
--- a/applications/rtdt-manager/venv/venv.go
+++ b/applications/rtdt-manager/venv/venv.go
@@ -222,6 +222,8 @@ func (v *VEnv) ConstructTopology() error {
 func getTypedValue(value string) *gnmi.TypedValue {
 	if boolVal, err := strconv.ParseBool(value); err == nil {
 		return &gnmi.TypedValue{Value: &gnmi.TypedValue_BoolVal{BoolVal: boolVal}}
+	} else if uintVal, err := strconv.ParseUint(value, 10, 64); err == nil {
+		return &gnmi.TypedValue{Value: &gnmi.TypedValue_UintVal{UintVal: uintVal}}
 	} else if intVal, err := strconv.ParseInt(value, 10, 64); err == nil {
 		return &gnmi.TypedValue{Value: &gnmi.TypedValue_IntVal{IntVal: intVal}}
 	} else {
@@ -256,10 +258,29 @@ func (v *VEnv) SetGnmiPath(path, value, mneid string) error {
 		ChangeRequest: changeRequests,
 	})
 	if err != nil {
-        fmt.Printf("Going to panic now, the 'setPathResponse' value is %v\n", setPathResponse.String())
-		panic(err)
+		fmt.Printf("Error: %v\n", err)
+		return err
 	}
 	fmt.Println("setPathResponse: ", setPathResponse.String())
+
+	// Now try to commit the change
+	fmt.Println("Now trying to commit change with ID:", setPathResponse.GetResponses()[0].GetId())
+	setChange := &networkelement.SetChange{
+		Cuid: setPathResponse.GetResponses()[0].GetId(),
+		Op:   networkelement.Operation_OPERATION_COMMIT,
+	}
+	setChangeListRequest := networkelement.SetChangeListRequest{
+		Change:    []*networkelement.SetChange{setChange},
+		Timestamp: util.Now(),
+		Pid:       pid,
+	}
+	clResponse, err := mneService.SetChangeList(ctx, &setChangeListRequest)
+	if err != nil {
+		fmt.Println("Error, failed to commit changes:", err)
+		return err
+	} else {
+		fmt.Println("Successfully applied changes:", clResponse)
+	}
 	return nil
 }