diff --git a/examples/actors/xdf/MergeActors.jrag b/examples/actors/xdf/MergeActors.jrag
index b72d6e4301389f4b1df2cb91e994952feabec1fe..4763296c34e933a3808a8c2760d523de441c7f37 100644
--- a/examples/actors/xdf/MergeActors.jrag
+++ b/examples/actors/xdf/MergeActors.jrag
@@ -42,9 +42,9 @@ aspect MergeActors {
 					}
 				}
 				System.out.println("Merging "+i.name()+":"+i.next.name());
+				i.isMerged(true);
 				i.merge(i.next);
 				i.setName(i.name()+"_"+i.next.name());
-				i.isMerged(true);
 				i.next.disabled = true;
 				i.next = i.next.next;
 			}
@@ -74,6 +74,10 @@ aspect MergeActors {
 				System.out.println("Could not print to file: "+name());
 			} 
 		}
+		if (disabled) {
+			// remove from AST
+			is$Final(false);
+		}
 	}
 
 	private boolean Instance.isMerged = false;
@@ -123,4 +127,10 @@ aspect Rewrites {
 			return new ComplexElement();
 		}
 	}
+	rewrite Instance {
+		when (disabled) to ComplexElement {
+			System.out.println("Removing instance: "+name());
+			return new ComplexElement();
+		}
+	}
 }
diff --git a/examples/actors/xlim/Merge.jrag b/examples/actors/xlim/Merge.jrag
index 234c0aaf5f0fd8a52584549a83ad023753633429..87f11218c6d9d54df1a70fc223e5ed80ea606228 100644
--- a/examples/actors/xlim/Merge.jrag
+++ b/examples/actors/xlim/Merge.jrag
@@ -15,12 +15,16 @@ aspect Merge {
 	public void EmptyStart.merge(Start dest) {}
 
 	public void design.merge(design dest) {
-		HashSet<module> ops = getActions(new HashSet<module>());
-		System.out.println("Adding actions to: "+name());
+		HashSet<module> ops = dest.getActions(new HashSet<module>());
+		System.out.println("Adding actions from: "+dest.name()+" to: "+name());
+		setName(name()+"_"+dest.name());
 		List<Element> eList = getElements();
 		for (module o : ops) {
+			o.setName(dest.name()+"_"+o.name());
 			System.out.println("   Adding "+o.name());
-			eList.insertChild(o,eList.getNumChild()-2);
+ 			eList.insertChild(o,eList.getNumChild()-2);
+			actionScheduler().addTaskCall(o);
+// 			eList.addChild(o);
 		}
 	}
 }
@@ -48,3 +52,29 @@ aspect Actions {
 		return ops;
 	}
 }
+
+aspect ActionScheduler {
+	syn module Element.actionScheduler() = null;
+	eq ComplexElement.actionScheduler() {
+		for (Element e : getElements()) {
+			if (e.actionScheduler() != null) {
+				return e.actionScheduler();
+			}
+		}
+		return null;
+	}
+	eq module.actionScheduler() {
+		if (isActionScheduler()) {
+			return this;
+		}
+		return null;
+	}
+
+	boolean module.isActionScheduler() {
+		return kind().equals("action-scheduler");
+	}
+
+	void module.addTaskCall(module m) {
+
+	}
+}
\ No newline at end of file
diff --git a/examples/actors/xlim/SDF.jrag b/examples/actors/xlim/SDF.jrag
index 309375cf3e92fd5946a22923cf87e94dcb3704ea..5b3164b6fd5eeab1f0b547a69117e39240f49d18 100644
--- a/examples/actors/xlim/SDF.jrag
+++ b/examples/actors/xlim/SDF.jrag
@@ -56,6 +56,18 @@ aspect Misc {
 		return super.name();
 	}
 
+	public void Element.setName(String name) {}
+	public void ComplexElement.setName(String name) {
+		for (Attribute a : getAttributes()) {
+			a.setName(name);
+		}
+	}
+	void Attribute.setName(String name) {}
+	void name.setName(String name) {
+		getAttrValue().setLITERAL(fix(name));
+	}
+
+
 	static String ASTNode.fix(String s) {
 		if (s.indexOf('"') == 0) {
 			return s.substring(1,s.length()-1);