diff --git a/applications/rtdt-manager/data/gNMISubscriptions.txt b/applications/rtdt-manager/data/gNMISubscriptions.txt
index 46b4f0456aff4350275a64c46efb1a4c6431f81d..56361a17f54806f87bdc86d8f2587d241785f2c2 100644
--- a/applications/rtdt-manager/data/gNMISubscriptions.txt
+++ b/applications/rtdt-manager/data/gNMISubscriptions.txt
@@ -1,2 +1 @@
-system/config/hostname
 system/config/domain-name
diff --git a/applications/rtdt-manager/main.go b/applications/rtdt-manager/main.go
index 298803804f7a43bfbd7abf021a5b7c792d6f6c55..8d7f92846e7e42065bc84c6f1631b389ee1e1840 100644
--- a/applications/rtdt-manager/main.go
+++ b/applications/rtdt-manager/main.go
@@ -70,7 +70,7 @@ func main() {
 	// Do performance tests of realnet before starting twin
 	if benchmark {
 		fmt.Println("Now doing performance measurements of gosdn's propagation delay ")
-		rtdtMan.RunBenchmark()
+		rtdtMan.RunBenchmark0()
 	}
 
 	if withTwin {
diff --git a/applications/rtdt-manager/rtdt-manager/rtdt-manager.go b/applications/rtdt-manager/rtdt-manager/rtdt-manager.go
index e25f216d0d22f226e114232341ef2dd25db9d63c..1f1cd17a379a4eeabd97af69cdc181fa5c507710 100644
--- a/applications/rtdt-manager/rtdt-manager/rtdt-manager.go
+++ b/applications/rtdt-manager/rtdt-manager/rtdt-manager.go
@@ -64,8 +64,26 @@ func (r *RtdtManager) LaunchTwin(twinSubnetIPv4, twinSubnetIPv6, twinName string
 	return nil
 }
 
+// Apply the changes from a twin back to realnet
+func (r *RtdtManager) ApplyChanges(twinName string) error {
+	var twin *venv.VEnv
+	for _, tw := range r.rtdt_twins {
+		if tw.Name == twinName {
+			twin = tw
+		}
+	}
+	for _, change := range *twin.GetSavedChanges() {
+		mneid := change.Mneid
+		path := change.Path.String()
+		val := change.Value
+		//apiOp := change.ApiOp
+		r.realnet.SetGnmiPath(path, val.GetStringVal(), mneid, false)
+	}
+	return nil
+}
+
 // Performance benchmarks of realnet
-func (r *RtdtManager) RunBenchmark() error {
+func (r *RtdtManager) RunBenchmark0() error {
 	var mneid string
 	for _, node := range r.realnet.GetTopology().Nodes {
 		if strings.HasPrefix(node.Name, "gnmi-target-switch0") {
diff --git a/applications/rtdt-manager/rtdt-topology/rtdt-topology.go b/applications/rtdt-manager/rtdt-topology/rtdt-topology.go
index d4123f10eab7eb6727cf7ba318c4cb7f19c3bc9c..933e58d3bb18ac8017c77158a7444fcee6c45806 100644
--- a/applications/rtdt-manager/rtdt-topology/rtdt-topology.go
+++ b/applications/rtdt-manager/rtdt-topology/rtdt-topology.go
@@ -39,7 +39,6 @@ type Topology struct {
 }
 
 func NewTopology() *Topology {
-
 	return &Topology{}
 }
 
diff --git a/applications/rtdt-manager/venv/venv.go b/applications/rtdt-manager/venv/venv.go
index 3e3afee16c676ca97b4b817a7eb74e6f8206c343..d55be3d38e9b8bb58a6febda2a53220ab57bd01b 100644
--- a/applications/rtdt-manager/venv/venv.go
+++ b/applications/rtdt-manager/venv/venv.go
@@ -38,7 +38,7 @@ type VEnv struct {
 	waitGroup            *sync.WaitGroup
 	topology             rtdt_topology.Topology
 	containerRegistryURL string
-    savedChanges         []*networkelement.ChangeRequest
+	savedChanges         []*networkelement.ChangeRequest
 }
 
 // Accepts a yaml filename to deploy a container lab environment
@@ -341,3 +341,6 @@ func (v *VEnv) GetWaitgroup() *sync.WaitGroup {
 func (v *VEnv) GetTopology() *rtdt_topology.Topology {
 	return &v.topology
 }
+func (v *VEnv) GetSavedChanges() *[]*networkelement.ChangeRequest {
+    return &v.savedChanges
+}
diff --git a/controller/configs/gNMISubscriptions.txt.example b/controller/configs/gNMISubscriptions.txt.example
index 46b4f0456aff4350275a64c46efb1a4c6431f81d..56361a17f54806f87bdc86d8f2587d241785f2c2 100644
--- a/controller/configs/gNMISubscriptions.txt.example
+++ b/controller/configs/gNMISubscriptions.txt.example
@@ -1,2 +1 @@
-system/config/hostname
 system/config/domain-name