diff --git a/InformationArchitecture.wiki b/InformationArchitecture.wiki
index e0c3964..40f4aae 100644
--- a/InformationArchitecture.wiki
+++ b/InformationArchitecture.wiki
@@ -17,17 +17,24 @@
 === User Information ===
 
   * User model stores the user's public name, the Google account with which the user signed up for Melange and the user's link id.
-  * Profile information is stored in the Profile model which is in turn inherited from Role model. The user entity of the user to whom profile belongs to serves as the parent of the profile entity. For students there is an additional StudentInfo model which stores student specific information such as school name, project and proposal counts in GSoC and so on. Profile model is the parent of the StudentInfo model. Both the Profile model and StudentInfo model contains user supplied information and derived properties.
+  * Profile information is stored in the Profile (GSoCProfile and GCIProfile) models which are in turn inherited from Role model. The user entity of the user to whom profile belongs to serves as the parent of the profile entity. GSoCStudentInfo and GCIStudentInfo models store student specific information such as school name, project and proposal counts in GSoC, completed tasks count in GCI and so on. Corresponding profile models are the parents of the StudentInfo models. Both the Profile models and StudentInfo models contain user supplied information as well as derived properties.
 
 
 === Program Information ===
 
-  * The program model stores the settings such as total number of slots available, age restrictions for participants, program's current visibility that are related to the entire program.
-  * The timeline model stores the program's timeline. However the timeline corresponding to organization application and mentor and student midterm and final evaluations are stored as part of the corresponding surveys outside this GSoCTimeline model. There exists a 1:1 relationship between the program model and the timeline model. program model references the timeline model through "timeline" reference property and timeline model references program model through "scope" reference property.
-  * The program messages model stores the message bodies of the emails that are sent by hosts to different various participants. Message model is a descendent of program model.
-  * The organization model stores both the information pertaining to the organization that are publicly visible such as organization name, contact details etc. and organization specific settings such as their GSoC proposal scoring scale, accepted and rejected messages, etc. This model also stores some derived information such as the number of mentors assigned to proposals, slots allocated and so on.
+  * The program models(GSoCProgram and GCIProgram) store the settings such as total number of slots available, age restrictions for participants, program's current visibility that are related to the entire program.
+  * The timeline (GCITimeline and GSoCTimeline) models store the program's timeline. However the timeline corresponding to the surveys such as organization application and mentor and student midterm and final evaluations are stored as part of the corresponding surveys outside these timeline models. There exists a 1:1 relationship between the program model and the timeline model. Program model references the timeline model through "timeline" reference property and timeline model references program model through "scope" reference property.
+  * The program messages (GSoCProgramMessage and GCIProgramMessage) models store the message bodies of the emails that are sent by hosts to different various participants. Message models are descendents of program models.
 
+=== Organization Information ===
 
+  * The organization (GSoCOrganization and GCIOrganization) models store both the information pertaining to the organization that are publicly visible such as organization name, contact details etc. and organization specific settings such as their GSoC proposal scoring scale, accepted and rejected student messages in GSoC. These models also store some derived information such as the number of mentors assigned to proposals, slots allocated and so on.
+
+=== Proposals and Projects ===
+
+  * The StudentProposal model stores the content of the proposal submitted by the student, mentors who wish to mentor the proposal, the mentors assigned to the proposal, etc.
+  * The GSoCComment model stores the proposal review comments.
+  * The GSoCScore model stores the score assigned by each member of the organization to a proposal.
 
 
 Relationship between entities:
\ No newline at end of file
