diff --git a/MelangePlan0310.wiki b/MelangePlan0310.wiki
index 2e65b06..7592585 100644
--- a/MelangePlan0310.wiki
+++ b/MelangePlan0310.wiki
@@ -7,27 +7,8 @@
 This page lists the different tasks that Melange will focus on during the upcoming months. Note that this list is far from complete in terms of other improvements we might make and that not everything on this list (prio medium or lower) might make it into Melange before the next months are over.
 
 To be added to the list, needs to be made more tangible:
-  * GHOP, Madhu + Lennie should work on making that more tangible (Task workflow works perfect, just needs some one do test all the possibilities. I am not sure how many of the following enhancements we need to complete in Q3-Q4 but all the bug fixes are must.)
-    # Task Queue API implementation for task limit allocation *(Priority - High)*
-    # Submission of work: GHOP must be able to accept work submissions from students working on Tasks. Google Appengine 1.3.0+ now supports files of sizes 50MiB. *(Priority - Medium)*
-    # jQuery Auto completion to assign mentors for tasks *(Priority - High)*
-    # Text editor changes based on Pavel's project for GHOP Task creation/editing page. *(Priority - High)*
-    # Prize distribution system. Selection of winners, runners etc automatically. That is calculating the points gained by students etc. *(Priority - Medium)*
-    # Bulk uploading of tasks preferably in a CSV file *(Priority - Medium)*
-    # Statistics on individual tasks(not the Mario, Daniel type statistics) but stats like how many times a task was claimed, reopened etc *(Priority - Medium)*
-    # Daniel and Mario type statistics also :D *(Priority - Medium)*
-    # Personal customization of subscriptions *(Priority - Low)*
-    # Update mails to mentors, students about a task like remainders about deadlines among other things *(Priority - Low)*
-    # Repeatable tasks *(Priority - Low)*
-    # Calendar APIs integration from Savitha's project. *(Priority - Low)*
-  Bug fixes - *(Priority - High)* for all
-    # Merge duplicate code in the getExtraMenus in the GHOP Program.
-    # Merge the code of task_type_edit and difficulty_edit and its corresponding templates since there is a lot of duplicate code.
-    # Fix the problem with InviteAcceptRedirect URLs. It doesn't redirect to correct URL.
   * Testing, Sverre suggesting getting more time for it. Chong Liu's work should help.
 
-
-
 || *Short Name* || *Description* || *Schelduled* || *Priority* || *Primary Contributors* ||
 || Design UI Prototypes || Design and prototype new UI designs for Melange || 16 August || High || Mario Ferraro ||
 || User Interface Discussion || Discussion and choosing of the new interface || 6 September || High || All ||
@@ -39,4 +20,15 @@
 ||Enhance Notifications||This includes posting the complete notification in the email sent to the user and perhaps add the possibility to read them using an RSS feed (NewsFeed framework from James Levy)|| ||Low|| ||
 ||Add Surveys to the Statistics module||The Statistics modules seems like the perfect place to also handle the statistics that can be gathered from the Surveys collected within Melange.|| ||Low|| ||
 ||Internationalization||The text in Melange has now become quite stable and we do have a large user base within the Asian community. We should look into the possibility of adding and enabling translations. Research might be required into languages that read from right to left.|| ||Low|| ||
-||Display changes in StudentProposals||A StudentProposal usually has multiple iterations. A request from the organizations was to make these changes more visible by somehow displaying the history of a proposal (diffs or complete histories are an idea)||GSoC 2010 ||Very Low|| ||
\ No newline at end of file
+||Display changes in StudentProposals||A StudentProposal usually has multiple iterations. A request from the organizations was to make these changes more visible by somehow displaying the history of a proposal (diffs or complete histories are an idea)||GSoC 2010 ||Very Low|| ||
+
+== GHOP ==
+|| *Short Name* || *Description* || *Schelduled* || *Priority* || *Primary Contributors* ||
+|| GHOP Organization Registration || Check/Fix/Implement the Organization registration for GHOP Organizations, including Org Admin and Mentor invitations. || TBD || High || TBD ||
+|| GHOP Task Quota assignment || Create the page where Program Administrators can see/update the quota for each organization. Does not need to be Task API anymore because the current list can send along the keys, however it does need to scale. || TBD || High || TBD ||
+|| GHOP Task creation by org admins || Allow GHOP Org Admins to create tasks for their own org which can be directly published or stored for later publishing. || TBD || High || TBD ||
+|| GHOP Task suggestion by mentors, all can edit || Allow GHOP Mentors to suggest tasks for their organization and let the Org Admin accept/publish the task, both in bulk and on a per-task basis || TBD || High || TBD ||
+||  GHOP Task workflow || Run the current workflow from the point that a task is published till the completion of a Task. Includes, allowing uploads to be made as part of a WorkSubmission, checking access to make sure that a mentor/org admin can't claim a task and someone who has claimed a task or is a Student can't become a Org Admin/Mentor. || TBD || High || TBD ||
+|| GHOP statistics || Page to gather GHOP Statistics, might make use of the work from Mario and Daniel. Most importantly we need to know who completed what amount of tasks on a overall and per-org basis.|| TBD || High || TBD ||
+||  GHOP Task pages || Besides the per-task page there are a few more important pages to be checked/fixed/implemented.  Namely the org home page with a lists of their tasks, a page with all tasks for a single program and a page for listing "My tasks" showing either the ones you have claimed or are mentoring. || TBD || High || TBD ||
+|| GHOP Testing period || Similar to the GSoC testing period we will run GHOP through its paces publicly during this time. || TBD || High || TBD ||
