diff --git a/libs/grabcut.swc b/libs/grabcut.swc
index 91f27be..0e3e66a 100755
Binary files a/libs/grabcut.swc and b/libs/grabcut.swc differ
diff --git a/src/svgeditor/ImageEdit.as b/src/svgeditor/ImageEdit.as
index ff2882e..cf7b663 100644
--- a/src/svgeditor/ImageEdit.as
+++ b/src/svgeditor/ImageEdit.as
@@ -946,7 +946,7 @@ package svgeditor {
 		public function applySegmentationMask(ib:IconButton):void{
 			if(segmentationTool){
 				segmentationTool.commitMask();
-				drawPropsUI.sendChangeEvent()
+                refreshSegmentationMode();
 			}
 
 		}
diff --git a/src/svgeditor/objs/FlasccConsole.as b/src/svgeditor/objs/FlasccConsole.as
new file mode 100644
index 0000000..a85aa95
--- /dev/null
+++ b/src/svgeditor/objs/FlasccConsole.as
@@ -0,0 +1,51 @@
+/**
+ * Created by Mallory on 11/30/15.
+ */
+package svgeditor.objs {
+    import flash.display.Sprite;
+    import flash.text.TextField;
+    import flash.events.Event;
+
+    import grabcut.CModule;
+    import grabcut.vfs.ISpecialFile;
+
+    public class FlasccConsole extends Sprite implements ISpecialFile {
+
+                private var tf:TextField;
+
+                public function SampleApplication():void {
+                    addEventListener(Event.ADDED_TO_STAGE, initCode);
+                }
+
+                private function initCode(e:Event):void {
+                    tf = new TextField();
+                    addChild(tf);
+                    tf.appendText("SWC Output:\n");
+
+
+
+                    // call a C++ function that calls printf
+                    var func:int = CModule.getPublicSymbol("test")
+                    var result:int = CModule.callI(func, new Vector.<int>());
+        }
+
+        /**
+         * The PlayerKernel implementation will use this function to handle
+         * C IO write requests to the file "/dev/tty" (e.g. output from
+         * printf will pass through this function). See the ISpecialFile
+         * documentation for more information about the arguments and return value.
+         */
+        public function write(fd:int, bufPtr:int, nbyte:int, errnoPtr:int):int
+        {
+            var str:String = CModule.readString(bufPtr, nbyte);
+            tf.appendText(str);
+            trace(str);
+            return nbyte;
+        }
+
+        /** See ISpecialFile */
+        public function read(fd:int, bufPtr:int, nbyte:int, errnoPtr:int):int { return 0; }
+        public function fcntl(fd:int, com:int, data:int, errnoPtr:int):int { return 0; }
+        public function ioctl(fd:int, com:int, data:int, errnoPtr:int):int { return 0; }
+    }
+}
diff --git a/src/svgeditor/tools/BitmapBackgroundTool.as b/src/svgeditor/tools/BitmapBackgroundTool.as
index e8558b7..9290fe2 100644
--- a/src/svgeditor/tools/BitmapBackgroundTool.as
+++ b/src/svgeditor/tools/BitmapBackgroundTool.as
@@ -22,23 +22,32 @@ import flash.ui.Mouse;
 import flash.utils.ByteArray;
 import flash.utils.Timer;
 
+import grabcut.vfs.ISpecialFile
 import grabcut.CModule;
 
-import grabcut_2F_var_2F_folders_2F_6q_2F_k8f6r3f11mz7vklyw3c3_thc0000gn_2F_T_2F__2F_ccWVlzPy_2E_o_3A_2533C483_2D_20F9_2D_49F2_2D_96B7_2D_F80F19E622DF.__GLOBAL__D_objectColors;
-
 import scratch.ScratchCostume;
 
 import svgeditor.ImageCanvas;
 
 import svgeditor.ImageEdit;
+import svgeditor.objs.FlasccConsole;
 import svgeditor.objs.SegmentationState;
 
 import uiwidgets.EditableLabel;
 
 import util.Base64Encoder;
 
+
+import flash.display.Sprite;
+import flash.text.TextField;
+import flash.events.Event;
+
+
+
+
 public class BitmapBackgroundTool extends BitmapPencilTool{
 
+
 	static public const GOTMASK:String='got_mask';
 
 	static private const SCALE_FACTOR:Number = .5;
@@ -124,7 +133,11 @@ public class BitmapBackgroundTool extends BitmapPencilTool{
 
 	public function BitmapBackgroundTool(editor:ImageEdit){
 		if(!startedAsync){
+//            var console:FlasccConsole = new FlasccConsole();
+//			CModule.vfs.console = console;
+//            console.SampleApplication();
 			CModule.startAsync();
+//            editor.addChild(console);
 			startedAsync=true;
 		}
         previewFrameBackgrounds.push(
@@ -437,6 +450,7 @@ public class BitmapBackgroundTool extends BitmapPencilTool{
 	}
 
 	public function restoreUnmarked():void{
+        timer.stop();
         workingScribble.fillRect(workingScribble.rect, 0);
         editor.getWorkArea().getBitmap().visible = true;
 	}
@@ -446,10 +460,12 @@ public class BitmapBackgroundTool extends BitmapPencilTool{
             timer.stop();
             editor.getWorkArea().getBitmap().visible = true;
 			applyMask(lastMask, workingBitmap);
-			workingScribble.fillRect(scribbleBitmap.rect, 0x00000000);
-            scribbleBitmap.fillRect(scribbleBitmap.rect, 0x00000000);
-			lastMask = null;
-			isGreyscale = false;
+            editor.targetCostume.segmentationState.reset();
+            loadState();
+	///		workingScribble.fillRect(scribbleBitmap.rect, 0x00000000);
+    ///        scribbleBitmap.fillRect(scribbleBitmap.rect, 0x00000000);
+	///		lastMask = null;
+	///		isGreyscale = false;
 			editor.saveContent();
 		}
 	}