diff --git a/SocialFeaturesMelangeGSoC2010.wiki b/SocialFeaturesMelangeGSoC2010.wiki
index e868939..e122871 100644
--- a/SocialFeaturesMelangeGSoC2010.wiki
+++ b/SocialFeaturesMelangeGSoC2010.wiki
@@ -13,7 +13,9 @@
 == Main Feature 1: Tabbed User Pages ==
 
 ===Overview===
-User Page feature will be used by each user to share information about themselves with the rest of the GSoC community. The UI of this feature is designed with tabs, hence users will remain on a single page while navigating between multiple tabs. The details of this feature's design and implementation are as follows.
+User Page feature will be used by each user to share information about 
+themselves with the rest of the GSoC community. The UI of this feature is designed with tabs, 
+hence users will remain on a single page while navigating between multiple tabs. The details of this feature's design and implementation are as follows.
 
 The tabs of the user page will be as follows:
    * Profile
@@ -32,17 +34,18 @@
     # There are two possibilities from here:
       # If users click the link, they are redirected to the profile tab of their user page, where they see their partially filled profile based on current user information provided at sign up (i.e. name, current/past user roles).
       # If they do not click on the email link, whenever they next log into Melange, they will see ‘User Page’ on their sidebar under the ‘User’ tab. Clicking on this will take them to the profile tab of their user page.
-    # They may further update the data on their profile tab by clicking on the ‘Edit Profile’ button or navigate to the Project tab or My Stuff tab to update the respective data. 
+    # They may further update the data on their profile tab, or the other two (Project, MyStuff) tabs by clicking on the ‘Edit User Page’ button to be redirected to a form where they can edit/add data for all the three tabs. 
+    # The *Profile tab* will display a subset of the properties from the user_page data model. Profile related information such as contact, personal profile details, education and job information will be shown here.
+    # In the *Project tab*, students can fill in details of the project they are working on, while mentors can provide details about the project they are mentoring for. Organization Admins can use this page to provide information about all their student projects. Program Admins can use this page to provide general information about the GSoC/GHOP program itself.
+    # In the *My Stuff tab*, users can click on “Add Blog Feed”, to insert their blog url to display updates from their personal blogs using Melange’s RSS widget. For organization and program admins, there is provision to display two blog feeds. This is to display their own personal blog feed as well their organization/program blog feeds.
+    # Once changes are saved, users may return anytime during the course of the program to change and save the information on their user pages.
 -----
-Comment (Madhu): I think there should be only one edit page where they can edit all the three tabs.
+*Suggestion Incorporated* Comment (Madhu): I think there should be only one edit page where they can edit all the three tabs.
+-----   
 -----
-    # In the Project tab, similar to the Profile Tab, default project data is filled in such as organization name, project name etc. Users can fill in more details by clicking on the ‘Edit Project’ button. Here, students can fill in details of the project they are working on, while mentors can provide details about the project they are mentoring for. Organization Admins can use this page to provide information about all their student projects. Program Admins can use this page to provide general information about the program details itself.
-    # In the My Stuff tab, users can click on “Add Blog Feed”, to insert their blog url to display updates from their blogs using Melange’s RSS widget. (To be confirmed: Can users add more than one feed? Eg. An Org Admin might want to add the org’s blog feed as well as their personal blog feed.)
+*Suggestion Incorporated* Comment (Madhu): Nope, that makes the interface too complicated and messy. Or if you would like, don't make it generic, but give Admins options for 2 RSS widgets. Thats the max, not more than that for sure.
 -----
-Comment (Madhu): Nope, that makes the interface too complicated and messy. Or if you would like, don't make it generic, but give Admins options for 2 RSS widgets. Thats the max, not more than that for sure.
------
-    # Once changes are saved, users may return anytime during the course of the program to change and save the information in their user pages.
-
+    
 ===Data Models===
 
 *UserPage*
@@ -51,8 +54,8 @@
 
 The Data Models
   * user_page.py
-  * education.py
-  * job.py
+  * education.py (not finalized)
+  * job.py (not finalized)
   * project_details.py
   * project_update.py (Nice to have, if time permits)
   * project_comment.py (Nice to have, if time permits)
@@ -73,11 +76,9 @@
   * education – *ListProperty*
   * job – *ListProperty*
   * last_modified - *DateTimeProperty*
-  * student - *ReferenceProperty*
-  * organization - *ReferenceProperty*
-  * mentor – *ReferenceProperty*
   * project_details – *ListProperty*
   * feed_url - *LinkProperty*
+  * user_page_status - *StringProperty*
 
 
 Properties of education.py
@@ -96,6 +97,9 @@
 
 Properties for project_details.py
   * user - *ReferenceProperty*
+  * student - *ReferenceProperty*
+  * organization - *ReferenceProperty*
+  * mentor – *ReferenceProperty*
   * project_title - *StringProperty*
   * languages – *StringProperty*
   * apis_frameworks – *IntegerProperty*
@@ -120,36 +124,35 @@
   * comment_user – *ReferenceProperty*
 
 The User page feature should be in one of the following states implied by the user_page_status property of the model.
- * Visible - This state occurs after the user is accepted into the program. Only the minimal information about the user already entered during registration is shown here. In this state, the user may edit or add to his user page at any time during the program.
+ * Visible - This state occurs after the user is accepted into the program. Only the minimal information about the user already entered during registration period is shown on the user page. In this state, the user may edit or add to his user page at any time during the program.
  * Invisible - This state of the user page can be activated by the user if the user wishes to prevent other users from viewing their profile. (Should this be allowed?)
  * Invalid - The user account has been terminated.
 
 -----
-Comment (Madhu): Status is good, but I don't think Uninitialized, Initialized and Updated is a good idea. Instead we can just have three states like, visible, invisible and invalid.
+*Suggestion Incorporated* Comment (Madhu): Status is good, but I don't think Uninitialized, Initialized and Updated is a good idea. Instead we can just have three states like, visible, invisible and invalid.
 -----
  
 
-*Profile Tab*
 
-The profile tab will display a subset of the properties from the user_page data model. Profile related information such as contact, personal profile details, education and job information will be shown here.
-
-*Project Tab*
-
-Similar to the profile tab, the project tab will contain the project related information such as details of past and current GSoC projects.
-
-Additional Note: Organization and program admins, will have more than one project and multiple students and mentors associated with them. Hence, the model needs to undergo some changes to accommodate them or to develop separate user_admin_project.py models for users with admin roles. 
-
-*My Stuff Tab*
-
-This tab will currently only be used to display the blog feeds, if any for a user. If no valid url is entered in the feed_url property of the user_page model, this tab will be left blank.
-
-*Edit User Page*
-
-The option to edit the data on the user page is also available to users. They may choose to edit the data anytime during the course of the program from their User Page in the application.
 -----
-Comment (Madhu): Oh! I am extremely sorry for not making this clear earlier, when you started writing it out, but anyways better late than never. You need not create so many Python files and data models. From what I can see all the files and data models you have specified above can be merged into one single file with one single data model. So many reference properties is not good. Also, even if we keep all the data you have specified in a single data model we can write views in such a way that it shows only what data needs to be shown to a specific user and tabbing etc etc can all be controlled by views and templates. So we might not want so many data models. We will have to redesign this together. 
+*Suggestion Incorporated* Comment (Madhu): Oh! I am extremely sorry for not making this clear earlier, when you started writing it out, but anyways better late than never. You need not create so many Python files and data models. From what I can see all the files and data models you have specified above can be merged into one single file with one single data model. So many reference properties is not good. Also, even if we keep all the data you have specified in a single data model we can write views in such a way that it shows only what data needs to be shown to a specific user and tabbing etc etc can all be controlled by views and templates. So we might not want so many data models. We will have to redesign this together. 
 -----
 
+===Views, Templates & Logic===
+*Views*
+
+*_soc.modules.social.views.models.user_page.py_* : Since the user_page feature serves more or less the same purpose for all the different user roles in Melange, a single view will be created.
+
+*Templates*
+
+ * *_soc.templates.modules.social.user_page.view_user_page.html_* : Since the user pages will be tabbed, the entire page will not reload when users switch between tabs. With the help of JavaScript, this can be achieved with a single template with different html div and id tags defining the data to be displayed in different tabs :).
+
+ * *_soc.templates.modules.social.user_page.edit_user_page.html_* : A different template with the html form will be created for the 'Edit User Page' function which will be used to update the user_page.py data model.
+
+*Logic*
+
+*_soc.modules.social.logic.models.user_page.py_* : To handle the edit/update of the user data a logic is created which will be used to update the user_page.py data model.
+
 == Main Feature 2: Maps + Calendars for GSoC ==
 
 
@@ -157,13 +160,20 @@
 
 == Use-Case Diagrams ==
 
-*User Page Feature*
+===User Page Feature===
 
-http://www.comp.nus.edu.sg/~savitha/gsoc/user_page_usecase.png
+http://www.comp.nus.edu.sg/~savitha/gsoc/user_page_usecase4.png
 
-*Maps + Calendar*
+===Maps + Calendar Feature===
 
-http://www.comp.nus.edu.sg/~savitha/gsoc/social1_usercase.png
+*Maps*
+
+http://www.comp.nus.edu.sg/~savitha/gsoc/maps_usecase.png
+
+
+*Calendars*
+
+http://www.comp.nus.edu.sg/~savitha/gsoc/calendars_usecase.png
 
 = Specification & Requirements =
   The detailed project specification will be added and updated here.  
