diff --git a/JsonGeneratorTests/JsonGeneratorTests.vcxproj b/JsonGeneratorTests/JsonGeneratorTests.vcxproj
index 1ecfdbdc..4f7fb9b4 100644
--- a/JsonGeneratorTests/JsonGeneratorTests.vcxproj
+++ b/JsonGeneratorTests/JsonGeneratorTests.vcxproj
@@ -89,6 +89,7 @@
     
     
     
+    
   
   
     
diff --git a/JsonGeneratorTests/JsonGeneratorTests.vcxproj.filters b/JsonGeneratorTests/JsonGeneratorTests.vcxproj.filters
index 5de1cd7b..22f563b7 100644
--- a/JsonGeneratorTests/JsonGeneratorTests.vcxproj.filters
+++ b/JsonGeneratorTests/JsonGeneratorTests.vcxproj.filters
@@ -30,6 +30,9 @@
     
       Source Files
     
+    
+      Source Files
+    
   
   
     
diff --git a/JsonGeneratorTests/JsonValueTests.cpp b/JsonGeneratorTests/JsonValueTests.cpp
index adf47c7b..56d68c13 100644
--- a/JsonGeneratorTests/JsonValueTests.cpp
+++ b/JsonGeneratorTests/JsonValueTests.cpp
@@ -8,22 +8,11 @@ namespace JsonGeneratorTests
 {
     TEST_CLASS(JsonValueTests)
     {
-        char buffer[20];
-        StringBuilder* sb;
+        char buffer[1024];
         size_t returnValue;
 
     public:
 
-        TEST_METHOD_INITIALIZE(Initialize)
-        {
-            sb = new StringBuilder(buffer, sizeof(buffer));
-        }
-                
-        TEST_METHOD(InitialState)
-        {
-            assertResultIs("");
-        }
-
         TEST_METHOD(Null)
         {
             write((char*)0);
@@ -40,35 +29,6 @@ namespace JsonGeneratorTests
             assertResultIs("\"\"");
         }
 
-        TEST_METHOD(OneString)
-        {
-            write("ABCD");
-            assertReturns(6);
-            assertResultIs("\"ABCD\"");
-        }
-
-        TEST_METHOD(OneTwoStrings)
-        {
-            write("ABCD");
-            assertReturns(6);
-
-            write("EFGH");
-            assertReturns(6);
-            
-            assertResultIs("\"ABCD\"\"EFGH\"");
-        }
-
-        TEST_METHOD(OverCapacity)
-        {
-            write("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
-            assertReturns(19);
-            assertResultIs("\"ABCDEFGHIJKLMNOPQR");
-
-            write("ABC");
-            assertReturns(0);
-            assertResultIs("\"ABCDEFGHIJKLMNOPQR");
-        }
-
         TEST_METHOD(SpecialChars)
         {
             write("\\\"\b\f\n\r\t");
@@ -107,7 +67,8 @@ namespace JsonGeneratorTests
         template
         void write(T value)
         {
-            returnValue = JsonValue(value).printTo(*sb);
+            StringBuilder sb(buffer, sizeof(buffer));
+            returnValue = JsonValue(value).printTo(sb);
         }
 
         void assertResultIs(const char* expected)
diff --git a/JsonGeneratorTests/StringBuilderTests.cpp b/JsonGeneratorTests/StringBuilderTests.cpp
new file mode 100644
index 00000000..8548f9b9
--- /dev/null
+++ b/JsonGeneratorTests/StringBuilderTests.cpp
@@ -0,0 +1,80 @@
+#include "CppUnitTest.h"
+#include "StringBuilder.h"
+
+using namespace Microsoft::VisualStudio::CppUnitTestFramework;
+
+namespace JsonGeneratorTests
+{
+	TEST_CLASS(StringBuilderTests)
+	{
+        char buffer[20];
+        Print* sb;
+        size_t returnValue;
+
+	public:
+		
+        TEST_METHOD_INITIALIZE(Initialize)
+        {
+            sb = new StringBuilder(buffer, sizeof(buffer));
+        }
+
+        TEST_METHOD(InitialState)
+        {
+            assertResultIs("");
+        }
+
+        TEST_METHOD(OverCapacity)
+        {
+            write("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
+            assertReturns(19);
+            assertResultIs("ABCDEFGHIJKLMNOPQRS");
+
+            write("ABC");
+            assertReturns(0);
+            assertResultIs("ABCDEFGHIJKLMNOPQRS");
+        }
+
+        TEST_METHOD(EmptyString)
+        {
+            write("");
+
+            assertReturns(0);
+            assertResultIs("");
+        }
+
+        TEST_METHOD(OneString)
+        {
+            write("ABCD");
+            assertReturns(4);
+            assertResultIs("ABCD");
+        }
+
+        TEST_METHOD(TwoStrings)
+        {
+            write("ABCD");
+            assertReturns(4);
+
+            write("EFGH");
+            assertReturns(4);
+
+            assertResultIs("ABCDEFGH");
+        }
+
+    private:
+
+        void write(const char* value)
+        {
+            returnValue = sb->write(value);
+        }
+
+        void assertResultIs(const char* expected)
+        {
+            Assert::AreEqual(expected, buffer);
+        }
+
+        void assertReturns(size_t expected)
+        {
+            Assert::AreEqual(expected, returnValue);
+        }
+	};
+}
\ No newline at end of file