diff --git a/GSoC2010MelangeTesting.md b/GSoC2010MelangeTesting.md
new file mode 100644
index 0000000..a1bfbf3
--- /dev/null
+++ b/GSoC2010MelangeTesting.md
@@ -0,0 +1,83 @@
+
+
+
+# Introduction
+> This document will be used to documents the progress and details of the Testing, Code Guru, Code Quality Assurance Project (GSoC2010) of Melange.
+
+
+# Meetings and Agendas
+
+## Wednesday May 14, 2010 18:00 in UTC
+### Meeting Logs
+> Meeting start: http://www.thousandparsec.net/~irc/logm/%23melange.2010-05-14.log.html#t2010-05-14T18:08:47
+
+> Meeting End: http://www.thousandparsec.net/~irc/logm/%23melange.2010-05-14.log.html#t2010-05-14T19:19:48
+
+
+### Meeting Notes
+
+> Location: #melange on freenode
+
+> Chaired by: Sverre Rabbelier
+
+> Notes taken by: Leo (Chong Liu)
+
+  * Told Sverre what I had done:
+    * Learned the code base of Melange and Melange tests
+    * Generated the directory organization of Melange and Melange tests
+    * Generated the package diagram and the class diagram of Melange
+    * Made some statistics on the code base of Melange
+  * Sverre suggested me to do:
+    * Start with the testing of the modules which are the most important and used most, e.g. soc.logic.models.base and soc.views.models.base
+    * Specifically add more test cases to the existing tests of these modules, e.g. tests.app.soc.logic.models.base and tests.app.soc.views.models.base
+
+
+# Tentative Timeline
+## Week 1 (24 May - 30 May)
+
+**TODO**:
+  1. Study the methods of app.soc.logic.models.base.Logic and calculate the frequency they are used.
+  1. Study existing test cases for app.soc.logic.models.base.Logic and their coverage.
+  1. Add test cases for app.soc.logic.models.base.Logic.
+
+**Deliverables**:
+  1. Complete most of the test cases for app.soc.logic.models.base.Logic.
+
+## Week 2 (31 May - 6 June)
+
+**TODO**:
+  1. Finish up the work for app.soc.logic.models.base.Logic.
+  1. Add test cases for app.soc.views.models.base.View.
+  1. Add test cases for app.soc.logic.models.User.Logic and app.soc.views.models.User.View.
+  1. Add test cases for app.soc.logic.models.Role.Logic and app.soc.views.models.Role.View.
+
+**Deliverables**:
+  1. Finish up the work for app.soc.logic.models.base.Logic.
+  1. Complete most of the work for the above modules.
+
+
+## Week 3-6 (7 June - 4 July)
+  1. Add test cases for other modules of app.soc.logic.models and app.soc.views.models
+  1. Create a wiki page to explain how the test is currently done before the start date of TDD to provide a reference for developers to design their tests
+
+## Week 7 (5 July - 11 July)
+  1. Add test cases for helper functions of  app.soc.logic and app.soc.views.
+
+## Week 8 (12 July - 18 July): _mid-term evaluations_
+  1. Finish up the work for app.soc.logic and app.soc.views and clean up code.
+
+## Week 9-11 (19 July - 8 August)
+  1. Add test cases for modules of app.soc.modules.gsoc and app.soc.modules.ghop.
+
+## Week 12 (9 August - 15 August): _pencils down_
+  1. Finish up the work for app.soc.modules.gsoc and app.soc.modules.ghop and clean up code.
+
+
+# Plans beyond GSoC
+Because of the time limit of GSoC, there are still many modules, which needs to be tested, remaining to be tested, e.g. soc.logic.cleaning as pointed out by Sverre. But I will continue to work on the testing project beyond GSoC, i.e. add more test cases for more modules, improve the testing design and code, integrate Felix' data seeder, and so on.
+# Tentative/rough Timeline
+  1. Add test cases for at least one module every one or two weeks depending on the size of the module or the amount of work.
+  1. Add tests for all (almost all at the very least) modules which needs to be tested before next GSoC.
+  1. Further improve the GettingStartedOnTesting wiki page and help others with their tests.
+  1. Integrate Felix' data seeder.
+  1. Improve the testing design and code whenever necessary or time allows.
\ No newline at end of file
diff --git a/GSoC2010MelangeTesting.wiki b/GSoC2010MelangeTesting.wiki
deleted file mode 100644
index 2e3e279..0000000
--- a/GSoC2010MelangeTesting.wiki
+++ /dev/null
@@ -1,86 +0,0 @@
-#summary Project Progress/Log for the Testing, Code Guru, Code Quality Assurance Project (GSoC2010) of Melange
-#labels Phase-Design,Contents-Draft,Importance-Details
-
-<wiki:toc max_depth="3" />
-
-
-= Introduction =
-  This document will be used to documents the progress and details of the Testing, Code Guru, Code Quality Assurance Project (GSoC2010) of Melange. 
-
-
-= Meetings and Agendas =
-
-== Wednesday May 14, 2010 18:00 in UTC ==
-===Meeting Logs===
-    Meeting start: http://www.thousandparsec.net/~irc/logm/%23melange.2010-05-14.log.html#t2010-05-14T18:08:47
-
-    Meeting End: http://www.thousandparsec.net/~irc/logm/%23melange.2010-05-14.log.html#t2010-05-14T19:19:48    
-    
-
-===Meeting Notes===
-
-  Location: #melange on freenode
-
-  Chaired by: Sverre Rabbelier
-
-  Notes taken by: Leo (Chong Liu)
-
-    * Told Sverre what I had done:
-       * Learned the code base of Melange and Melange tests
-       * Generated the directory organization of Melange and Melange tests
-       * Generated the package diagram and the class diagram of Melange
-       * Made some statistics on the code base of Melange
-    * Sverre suggested me to do:
-       * Start with the testing of the modules which are the most important and used most, e.g. soc.logic.models.base and soc.views.models.base
-       * Specifically add more test cases to the existing tests of these modules, e.g. tests.app.soc.logic.models.base and tests.app.soc.views.models.base
-
-
-= Tentative Timeline =
-== Week 1 (24 May - 30 May) ==
-
-*TODO*:
-  # Study the methods of app.soc.logic.models.base.Logic and calculate the frequency they are used.
-  # Study existing test cases for app.soc.logic.models.base.Logic and their coverage.
-  # Add test cases for app.soc.logic.models.base.Logic.
-
-*Deliverables*:
-  # Complete most of the test cases for app.soc.logic.models.base.Logic.
-
-== Week 2 (31 May - 6 June) ==
-
-*TODO*:
-  # Finish up the work for app.soc.logic.models.base.Logic.
-  # Add test cases for app.soc.views.models.base.View.
-  # Add test cases for app.soc.logic.models.User.Logic and app.soc.views.models.User.View.
-  # Add test cases for app.soc.logic.models.Role.Logic and app.soc.views.models.Role.View.
-
-*Deliverables*:
-  # Finish up the work for app.soc.logic.models.base.Logic.
-  # Complete most of the work for the above modules.
-
-
-== Week 3-6 (7 June - 4 July) ==
-  # Add test cases for other modules of app.soc.logic.models and app.soc.views.models
-  # Create a wiki page to explain how the test is currently done before the start date of TDD to provide a reference for developers to design their tests
-
-== Week 7 (5 July - 11 July) ==
-  # Add test cases for helper functions of  app.soc.logic and app.soc.views.
-
-== Week 8 (12 July - 18 July): _mid-term evaluations_ ==
-  # Finish up the work for app.soc.logic and app.soc.views and clean up code.
-
-== Week 9-11 (19 July - 8 August) ==
-  # Add test cases for modules of app.soc.modules.gsoc and app.soc.modules.ghop.
-
-== Week 12 (9 August - 15 August): _pencils down_ ==
-  # Finish up the work for app.soc.modules.gsoc and app.soc.modules.ghop and clean up code.
-
-
-= Plans beyond GSoC =
-Because of the time limit of GSoC, there are still many modules, which needs to be tested, remaining to be tested, e.g. soc.logic.cleaning as pointed out by Sverre. But I will continue to work on the testing project beyond GSoC, i.e. add more test cases for more modules, improve the testing design and code, integrate Felix' data seeder, and so on.
-= Tentative/rough Timeline =
-  # Add test cases for at least one module every one or two weeks depending on the size of the module or the amount of work.
-  # Add tests for all (almost all at the very least) modules which needs to be tested before next GSoC.
-  # Further improve the GettingStartedOnTesting wiki page and help others with their tests.
-  # Integrate Felix' data seeder.
-  # Improve the testing design and code whenever necessary or time allows.
\ No newline at end of file
