diff --git a/GHOPTODO.wiki b/GHOPTODO.md
similarity index 64%
rename from GHOPTODO.wiki
rename to GHOPTODO.md
index 64755a1..49a013a 100644
--- a/GHOPTODO.wiki
+++ b/GHOPTODO.md
@@ -1,30 +1,27 @@
-#summary This page lists all the TODOs for running GHOP program.
-#labels Importance-Overview,Phase-Requirements,Contents-Update
 
-<wiki:toc max_depth="3" />
 
-*Note*: Please feel free to edit this wiki. This is an open wiki. But once the task is complete, please don't delete or remove them from this page. Please move them to the section named "DONE" at end of this page at least till we start using the features of issue tracker since there is no other way for us to keep track of the progress and things like where we were when we began and where we are now. Thanks for understanding.
+**Note**: Please feel free to edit this wiki. This is an open wiki. But once the task is complete, please don't delete or remove them from this page. Please move them to the section named "DONE" at end of this page at least till we start using the features of issue tracker since there is no other way for us to keep track of the progress and things like where we were when we began and where we are now. Thanks for understanding.
 
-= TODO =
-  * All issues in the issue tracker that have their milestone set to GHOP.  See [http://code.google.com/p/soc/issues/list?can=2&q=milestone%3AGHOP&colspec=ID+Type+Priority+DueBy+Status+Owner+Milestone+Effort+Skills+Summary&cells=tiles this] page.(Priority - Varies)
+# TODO
+  * All issues in the issue tracker that have their milestone set to GHOP.  See [this](http://code.google.com/p/soc/issues/list?can=2&q=milestone%3AGHOP&colspec=ID+Type+Priority+DueBy+Status+Owner+Milestone+Effort+Skills+Summary&cells=tiles) page.(Priority - Varies)
 
 
   * Write a manual. We really need to get started with the manual right now at this young stage of the module. If we delay it any further, it is possible that we end up with nothing when it is most required. At the moment we only want User Manuals
-    # Write a manual for Program Admins - Explain how to create a program and how to edit the Program profile? How to assign task quota limits to Organizations? How to create/edit/delete Task Type Tags and Task Difficulty Tags? How to assign dates on the Timeline? And of course any other new features added. *Noirin will work on this, but probably not til after the other manuals are done*
-    # Write a manual for Org Admins - How to create Organization profile? How to invite other Org Admins and Mentors? How to Create/Edit/Delete Tasks (Must be really detailed)? How to assign mentors to the tasks? How to approve the tasks suggested by mentors? How to publish the tasks? How to handle actions on the task like assigning the task to claimed student or rejecting the claim, reviewing and requesting for more work or closing the task among other things? *Noirin is working on this*
-    # Write a manual for Mentors - How to suggest tasks and edit the suggested tasks? How to assign mentors to the tasks? How to handle actions on the task like assigning the task to claimed student or rejecting the claim, reviewing and requesting for more work or closing the task among other things? *Noirin is working on this*
-    # Write a manual for Students - How to search and navigate to tasks they want to work on? How to claim the task? How to submit their work? How and when to register as a student in the app? *Noirin will work on this*
-    # Write a manual for General Public - All general things :P. Things any person who is interested in following the programme can do? (Priority - *Extremely High*). *Noirin will work on this*
+    1. Write a manual for Program Admins - Explain how to create a program and how to edit the Program profile? How to assign task quota limits to Organizations? How to create/edit/delete Task Type Tags and Task Difficulty Tags? How to assign dates on the Timeline? And of course any other new features added. **Noirin will work on this, but probably not til after the other manuals are done**
+    1. Write a manual for Org Admins - How to create Organization profile? How to invite other Org Admins and Mentors? How to Create/Edit/Delete Tasks (Must be really detailed)? How to assign mentors to the tasks? How to approve the tasks suggested by mentors? How to publish the tasks? How to handle actions on the task like assigning the task to claimed student or rejecting the claim, reviewing and requesting for more work or closing the task among other things? **Noirin is working on this**
+    1. Write a manual for Mentors - How to suggest tasks and edit the suggested tasks? How to assign mentors to the tasks? How to handle actions on the task like assigning the task to claimed student or rejecting the claim, reviewing and requesting for more work or closing the task among other things? **Noirin is working on this**
+    1. Write a manual for Students - How to search and navigate to tasks they want to work on? How to claim the task? How to submit their work? How and when to register as a student in the app? **Noirin will work on this**
+    1. Write a manual for General Public - All general things :P. Things any person who is interested in following the programme can do? (Priority - **Extremely High**). **Noirin will work on this**
 
   * The star icon used for Subscription of Tasks and the check boxes used for Bulk approval of Tasks on Org Admin's View all Tasks page is broken on IE7. Debug and fix the issue. Pointers - app/soc/content/css/ soc-090730.css and soc-090708-ie.css. Note the css file names are susceptible to changes ;-). (Priority - Very High).
 
- * Fix the problem with InviteAcceptRedirect URLs. It doesn't redirect to correct URL (Priority - Very High).
+  * Fix the problem with InviteAcceptRedirect URLs. It doesn't redirect to correct URL (Priority - Very High).
 
-  * Problem with history - The initial idea was to store history for each change made for every task in the task entity. This history may be important to know how many times a task was reopened, what really made the task to be reopened among other things. This is stored as JSON. See: [http://code.google.com/p/soc/wiki/GHOPImplementationDesign#Task GHOPImplementation and Design of Task model] for more info as how this is implemented. After a small set of changes to that original idea, during the implementation phase, the plan is as follows:
-    # Initialize the history property of the task to an empty string when the task is created.
-    # When the task is first published, store the entire snapshot of the Task entity, i.e the values of all the entity properties is stored as JSON data as specified in the Implementation and Design page.
-    # For any further changes made to the task entity, we store the value of the property before change in the JSON.
-    This is not working as explained above. It must be debugged and fixed. Pointers - All the code resides in app.soc.modules.ghop.logic.models.task.Logic.updateEntityProperties(). (Priority - Very High).
+  * Problem with history - The initial idea was to store history for each change made for every task in the task entity. This history may be important to know how many times a task was reopened, what really made the task to be reopened among other things. This is stored as JSON. See: [GHOPImplementation and Design of Task model](http://code.google.com/p/soc/wiki/GHOPImplementationDesign#Task) for more info as how this is implemented. After a small set of changes to that original idea, during the implementation phase, the plan is as follows:
+    1. Initialize the history property of the task to an empty string when the task is created.
+    1. When the task is first published, store the entire snapshot of the Task entity, i.e the values of all the entity properties is stored as JSON data as specified in the Implementation and Design page.
+    1. For any further changes made to the task entity, we store the value of the property before change in the JSON.
+> > This is not working as explained above. It must be debugged and fixed. Pointers - All the code resides in app.soc.modules.ghop.logic.models.task.Logic.updateEntityProperties(). (Priority - Very High).
 
   * Find two stars for subscribed/unsubscribed status for each Task on Task Public page.
 
@@ -32,7 +29,7 @@
 
   * Remove all unused imports in all Python modules (Priority - High).
 
-  * Fix Issue 450 (Assigned to Madhusudan.C.S. priority - High).
+  * Fix Issue 450 (on Google Code) (Assigned to Madhusudan.C.S. priority - High).
 
   * The "Task quota" coloumn should be removed from the page that lists the organizations since this must not be shown on a public page (Priority - High)
 
@@ -64,10 +61,10 @@
 
   * Integrate Google Wave for GHOP Task comments and submissions. May seem really ambitious at the moment, but it will _really_ help when people start using Wave (Priority - Very Low) (Wave is dead guys!:-)
 
- * Remove application template from GHOP organization profile (Priority - Medium).
+  * Remove application template from GHOP organization profile (Priority - Medium).
 
- * That would be nice if an org admin had a link "Become a mentor". Currently he or she needs to send an invitation, open a notification, read it and accept (Priority - Low).
+  * That would be nice if an org admin had a link "Become a mentor". Currently he or she needs to send an invitation, open a notification, read it and accept (Priority - Low).
 
-== DONE ==
+## DONE
 
 Cleaned out :).
\ No newline at end of file
