diff --git a/Makefile b/Makefile
index 91e92fd..4c5bc61 100644
--- a/Makefile
+++ b/Makefile
@@ -56,6 +56,7 @@
 	LINKER_OPTS += -lpng
 	DEFINES += -DSK_BUILD_FOR_UNIX
 
+	SRC_LIST += src/ports/SkFontHost_none.cpp
     # these are our registry-based factories
 	SRC_LIST += src/images/SkImageDecoder_Factory.cpp
 	SRC_LIST += src/images/SkImageEncoder_Factory.cpp
diff --git a/bench/benchmain.cpp b/bench/benchmain.cpp
index f92277a..99bdbd7 100644
--- a/bench/benchmain.cpp
+++ b/bench/benchmain.cpp
@@ -152,16 +152,6 @@
     return -1;
 }
 
-class SkAutoGraphics {
-public:
-    SkAutoGraphics() {
-        SkGraphics::Init();
-    }
-    ~SkAutoGraphics() {
-        SkGraphics::Term();
-    }
-};
-
 int main (int argc, char * const argv[]) {
     SkAutoGraphics ag;
 
diff --git a/gm/gm.h b/gm/gm.h
index 23d98e1..ab92ff6 100644
--- a/gm/gm.h
+++ b/gm/gm.h
@@ -10,7 +10,7 @@
 
 namespace skiagm {
 	
-	static SkISize make_isize(int w, int h) {
+	static inline SkISize make_isize(int w, int h) {
 		SkISize sz;
 		sz.set(w, h);
 		return sz;
@@ -23,10 +23,20 @@
 		
 		void draw(SkCanvas*);
 		SkISize getISize() { return this->onISize(); }
+        const char* shortName() {
+            if (fShortName.size() == 0) {
+                fShortName = this->onShortName();
+            }
+            return fShortName.c_str();
+        }
 
 	protected:
-		virtual void onDraw(SkCanvas*) {}
-		virtual SkISize onISize() { return make_isize(0, 0); }
+		virtual void onDraw(SkCanvas*) = 0;
+		virtual SkISize onISize() = 0;
+        virtual SkString onShortName() = 0;
+        
+    private:
+        SkString fShortName;
     };
 
     typedef SkTRegistry<GM*, void*> GMRegistry;
diff --git a/gm/gmmain.cpp b/gm/gmmain.cpp
index 2417881..62ac44e 100644
--- a/gm/gmmain.cpp
+++ b/gm/gmmain.cpp
@@ -1,5 +1,7 @@
-#include "SkGraphics.h"
 #include "gm.h"
+#include "SkGraphics.h"
+#include "SkImageDecoder.h"
+#include "SkImageEncoder.h"
 
 using namespace skiagm;
 
@@ -35,15 +37,24 @@
     const GMRegistry* fReg;
 };
 
-class SkAutoGraphics {
-public:
-    SkAutoGraphics() {
-        SkGraphics::Init();
+static SkString make_name(const char shortName[], const char configName[]) {
+    SkString name(shortName);
+    name.appendf("_%s", configName);
+    return name;
+}
+
+static SkString make_filename(const char path[], const SkString& name) {
+    SkString filename(path);
+    if (filename.size() && filename[filename.size() - 1] != '/') {
+        filename.append("/");
     }
-    ~SkAutoGraphics() {
-        SkGraphics::Term();
-    }
-};
+    filename.append(name);
+    return filename;
+}
+
+static void compare(const SkBitmap& target, const SkBitmap& base,
+                    const SkString& name) {
+}
 
 static const struct {
 	SkBitmap::Config	fConfig;
@@ -59,12 +70,32 @@
 int main (int argc, char * const argv[]) {
     SkAutoGraphics ag;
     
+    const char* writePath = NULL;   // if non-null, where we write the originals
+    const char* readPath = NULL;    // if non-null, were we read from to compare
+
+    char* const* stop = argv + argc;
+    for (++argv; argv < stop; ++argv) {
+        if (strcmp(*argv, "-w") == 0) {
+            argv++;
+            if (argv < stop && **argv) {
+                writePath = *argv;
+            }
+        } else if (strcmp(*argv, "-r") == 0) {
+            argv++;
+            if (argv < stop && **argv) {
+                readPath = *argv;
+            }
+        }
+    }
+    
     Iter iter;
     GM* gm;
-
+	
     while ((gm = iter.next()) != NULL) {
 		SkISize size = gm->getISize();
-		SkDebugf("---- gm %p [%d %d]\n", gm, size.width(), size.height());
+        SkDebugf("---- %s [%d %d]\n", gm->shortName(),
+                 size.width(), size.height());
+
 		SkBitmap bitmap;
 		for (size_t i = 0; i < SK_ARRAY_COUNT(gRec); i++) {
 			bitmap.setConfig(gRec[i].fConfig, size.width(), size.height());
@@ -72,16 +103,29 @@
 			bitmap.eraseColor(0);
 			SkCanvas canvas(bitmap);
 
-			SkDebugf("------- drawing to %s config\n", gRec[i].fName);
 			gm->draw(&canvas);
-#if 0
-			if (gRec[i].fUsePicture) {
-				SkPicture picture;
-				gm->draw(picture.beginRecording(size.width(), size.height(), 0));
-				canvas.drawPicture(picture);
-			} else {
-			}
-#endif
+            
+            SkString name = make_name(gm->shortName(), gRec[i].fName);
+
+            if (writePath) {
+                SkString path = make_filename(writePath, name);
+                bool success = SkImageEncoder::EncodeFile(path.c_str(), bitmap,
+                                                SkImageEncoder::kPNG_Type, 100);
+                if (!success) {
+                    fprintf(stderr, "FAILED to write %s\n", path.c_str());
+                }
+            } else if (readPath) {
+                SkString path = make_filename(writePath, name);
+                SkBitmap orig;
+                bool success = SkImageDecoder::DecodeFile(path.c_str(), &orig,
+                                    SkBitmap::kARGB_8888_Config,
+                                    SkImageDecoder::kDecodePixels_Mode, NULL);
+                if (success) {
+                    compare(bitmap, orig, name);
+                } else {
+                    fprintf(stderr, "FAILED to read %s\n", path.c_str());
+                }
+            }
 		}
         SkDELETE(gm);
     }
diff --git a/gm/xfermodes.cpp b/gm/xfermodes.cpp
index 18b0bbb..e82c057 100644
--- a/gm/xfermodes.cpp
+++ b/gm/xfermodes.cpp
@@ -63,6 +63,10 @@
     }
     
 protected:
+    SkString onShortName() {
+        return SkString("xfermodes");
+    }
+
 	SkISize onISize() { return make_isize(400, 250); }
 
     void drawBG(SkCanvas* canvas) {
diff --git a/include/core/SkGraphics.h b/include/core/SkGraphics.h
index 1862a2b..dd5808a 100644
--- a/include/core/SkGraphics.h
+++ b/include/core/SkGraphics.h
@@ -42,5 +42,15 @@
     static void InstallNewHandler();
 };
 
+class SkAutoGraphics {
+public:
+    SkAutoGraphics() {
+        SkGraphics::Init();
+    }
+    ~SkAutoGraphics() {
+        SkGraphics::Term();
+    }
+};
+
 #endif
 
diff --git a/include/core/SkString.h b/include/core/SkString.h
index ae204dc..5ecfb1e 100644
--- a/include/core/SkString.h
+++ b/include/core/SkString.h
@@ -43,12 +43,13 @@
     explicit    SkString(size_t len);
     explicit    SkString(const char text[]);
                 SkString(const char text[], size_t len);
-    explicit    SkString(const SkString&);
+                SkString(const SkString&);
                 ~SkString();
 
     bool        isEmpty() const { return fRec->fLength == 0; }
     size_t      size() const { return (size_t) fRec->fLength; }
     const char* c_str() const { return fRec->data(); }
+    char operator[](size_t n) const { return this->c_str()[n]; }
 
     bool    equals(const SkString&) const;
     bool    equals(const char text[]) const;
@@ -77,6 +78,7 @@
     SkString&   operator=(const SkString&);
 
     char*   writable_str();
+    char& operator[](size_t n) { return this->writable_str()[n]; }
 
     void    reset();
     void    resize(size_t len) { this->set(NULL, len); }
diff --git a/src/ports/ports_files.mk b/src/ports/ports_files.mk
index 8760ae1..563f20b 100644
--- a/src/ports/ports_files.mk
+++ b/src/ports/ports_files.mk
@@ -1,6 +1,5 @@
 SOURCE := \
     SkDebug_stdio.cpp \
-    SkFontHost_none.cpp \
     SkGlobals_global.cpp \
     SkOSFile_stdio.cpp \
     SkThread_pthread.cpp \
diff --git a/tests/testmain.cpp b/tests/testmain.cpp
index f09fded..25248a3 100644
--- a/tests/testmain.cpp
+++ b/tests/testmain.cpp
@@ -95,16 +95,6 @@
     bool fAndroidMode;
 };
 
-class SkAutoGraphics {
-public:
-    SkAutoGraphics() {
-        SkGraphics::Init();
-    }
-    ~SkAutoGraphics() {
-        SkGraphics::Term();
-    }
-};
-
 int main (int argc, char * const argv[]) {
     SkAutoGraphics ag;
     
diff --git a/tools/skimage_main.cpp b/tools/skimage_main.cpp
index 575078c..8656d92 100644
--- a/tools/skimage_main.cpp
+++ b/tools/skimage_main.cpp
@@ -31,16 +31,6 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
-class SkAutoGraphics {
-public:
-    SkAutoGraphics() {
-        SkGraphics::Init();
-    }
-    ~SkAutoGraphics() {
-        SkGraphics::Term();
-    }
-};
-
 static void show_help() {
     SkDebugf("usage: skiamge [-o out-dir] inputfiles...\n");
 }
