diff --git a/lib/Analysis/CFRefCount.cpp b/lib/Analysis/CFRefCount.cpp
index efd4821..85c8e86 100644
--- a/lib/Analysis/CFRefCount.cpp
+++ b/lib/Analysis/CFRefCount.cpp
@@ -874,22 +874,7 @@
 }
 
 //===----------------------------------------------------------------------===//
-// Driver for the CFRefCount Checker.
+// Transfer function creation for external clients.
 //===----------------------------------------------------------------------===//
 
-namespace clang {
-  
-void CheckCFRefCount(CFG& cfg, Decl& CD, ASTContext& Ctx,
-                     Diagnostic& Diag, PathDiagnosticClient* PD) {
-  
-  if (Diag.hasErrorOccurred())
-    return;
-  
-  GRExprEngine Eng(cfg, CD, Ctx);
-  CFRefCount TF;
-  Eng.setTransferFunctions(TF);
-  Eng.ExecuteWorkList();
-  Eng.EmitWarnings(Diag, PD);
-}
-
-} // end clang namespace
+GRTransferFuncs* clang::MakeCFRefCountTF() { return new CFRefCount(); }  
diff --git a/lib/Analysis/GRSimpleVals.cpp b/lib/Analysis/GRSimpleVals.cpp
index 960476d..c350ab9 100644
--- a/lib/Analysis/GRSimpleVals.cpp
+++ b/lib/Analysis/GRSimpleVals.cpp
@@ -19,6 +19,7 @@
 #include "clang/Analysis/PathDiagnostic.h"
 #include "clang/Analysis/PathSensitive/ValueState.h"
 #include "clang/Analysis/PathSensitive/BugReporter.h"
+#include "clang/Analysis/LocalCheckers.h"
 #include "llvm/Support/Compiler.h"
 #include <sstream>
 
@@ -310,36 +311,10 @@
 }
 
 //===----------------------------------------------------------------------===//
-// Analysis Driver.
+// Transfer Function creation for External clients.
 //===----------------------------------------------------------------------===//
 
-namespace clang {
-  
-unsigned RunGRSimpleVals(CFG& cfg, Decl& CD, ASTContext& Ctx,
-                         Diagnostic& Diag, PathDiagnosticClient* PD,
-                         bool Visualize, bool TrimGraph) {
-
-  // Construct the analysis engine.
-  GRExprEngine Eng(cfg, CD, Ctx);
-  
-  // Set base transfer functions.
-  GRSimpleVals GRSV;
-  Eng.setTransferFunctions(GRSV);
-  
-  // Execute the worklist algorithm.
-  Eng.ExecuteWorkList();
-  
-  // Display warnings.
-  Eng.EmitWarnings(Diag, PD);
-  
-#ifndef NDEBUG
-  if (Visualize) Eng.ViewGraph(TrimGraph);
-#endif
-  
-  return Eng.getGraph().size();
-}
-  
-} // end clang namespace
+GRTransferFuncs* clang::MakeGRSimpleValsTF() { return new GRSimpleVals(); }  
 
 //===----------------------------------------------------------------------===//
 // Transfer function for Casts.
