 				}
 		}
 		
-		private function addBlocFromModule(displayModule:DModule):Bloc {
+		private function addBlocFromModule(displayModule:DModule, Rooted:Boolean = false):Bloc {
 			var displayModules:Vector.<DModule> = new Vector.<DModule>;
 			displayModules.push(displayModule);
 			
-			var displayBloc:DBloc = DBloc.fromDisplays(new Vector.<DWire>, displayModules, false);
+			var displayBloc:DBloc = DBloc.fromDisplays(new Vector.<DWire>, displayModules, Rooted);
 			displayBloc.bloc.origin = U.pointToGrid(U.mouseLoc);
 			midLayer.add(displayBloc);
 			

			undoButton.active = canUndo(); 
			redoButton.exists = reactionStack.length > 0;
			redoButton.active = canRedo();
			var undoAlpha:Number = currentWire || currentBloc ? 0.3 : 1;
			undoButton.setAlpha(undoAlpha);
			redoButton.setAlpha(undoAlpha);
			

		}
		
		private function canUndo():Boolean {
			return actionStack.length > 0 && !currentWire && (!currentBloc || currentBloc.rooted);
		}
		
		private function canRedo():Boolean {
			return reactionStack.length > 0 && !currentWire && (!currentBloc || currentBloc.rooted);
		}
		
		
