Index: /waeup/trunk/src/waeup/app.py
===================================================================
--- /waeup/trunk/src/waeup/app.py	(revision 3525)
+++ /waeup/trunk/src/waeup/app.py	(revision 3526)
@@ -1,5 +1,6 @@
 import grok
 from grok import index
-from interfaces import IUniversity, IFaculty, IStudent
+from interfaces import IUniversity
+from setup import app_setup
 
 class University(grok.Application, grok.Container):
@@ -9,4 +10,5 @@
         super(University, self).__init__(**kw)
         self.name = name
+        app_setup.setup(self)
 
 class Index(grok.View):
@@ -20,26 +22,2 @@
     grok.context(University)
     grok.AutoFields(IUniversity)
-
-class AddFaculty(grok.AddForm):
-    grok.context(IUniversity)
-    form_fields = grok.AutoFields(IFaculty)
-
-    @grok.action('Add Faculty')
-    def addFaculty(self, name, *args, **kw):
-        new_fac = Faculty(name=name)
-        self.context[name] = new_fac
-        self.redirect(self.url(new_fac))
-
-class Faculty(grok.Container):
-    grok.implements(IFaculty)
-
-    def __init__(self, name=u'Unnamed Faculty', **kw):
-        super(Faculty, self).__init__(**kw)
-        self.name = name
-
-class FacIndex(grok.DisplayForm):
-    grok.context(Faculty)
-    grok.name('index')
-    form_fields = grok.AutoFields(IFaculty)
-
-
Index: /waeup/trunk/src/waeup/app_templates/index.pt
===================================================================
--- /waeup/trunk/src/waeup/app_templates/index.pt	(revision 3525)
+++ /waeup/trunk/src/waeup/app_templates/index.pt	(revision 3526)
@@ -9,5 +9,5 @@
   <h2>Your faculties:</h2>
 
-  <ul tal:repeat="fac view/getFacList">
+  <ul tal:repeat="fac context/values">
     <li>
       <a href="." 
Index: /waeup/trunk/src/waeup/basecontainer.py
===================================================================
--- /waeup/trunk/src/waeup/basecontainer.py	(revision 3526)
+++ /waeup/trunk/src/waeup/basecontainer.py	(revision 3526)
@@ -0,0 +1,7 @@
+import grok
+
+class BaseContainer(grok.Container):
+    """
+    The base container. This is a stub for now. It can have
+    base methods and templates attached to it
+    """
Index: /waeup/trunk/src/waeup/catalog.py
===================================================================
--- /waeup/trunk/src/waeup/catalog.py	(revision 3525)
+++ /waeup/trunk/src/waeup/catalog.py	(revision 3526)
@@ -8,7 +8,7 @@
 from hurry.query.query import Query, Text
 from hurry.query import Eq
-from interfaces import IStudent
 from app import University
-from student import Student
+from students.interfaces import IStudent
+from students.student import Student
 
 class StudentIndexes(grok.Indexes):
Index: /waeup/trunk/src/waeup/hostel/hostelcontainer.py
===================================================================
--- /waeup/trunk/src/waeup/hostel/hostelcontainer.py	(revision 3526)
+++ /waeup/trunk/src/waeup/hostel/hostelcontainer.py	(revision 3526)
@@ -0,0 +1,4 @@
+from waeup.basecontainer import BaseContainer
+
+class HostelContainer(BaseContainer):
+    name = u"Hostels"
Index: /waeup/trunk/src/waeup/interfaces.py
===================================================================
--- /waeup/trunk/src/waeup/interfaces.py	(revision 3525)
+++ /waeup/trunk/src/waeup/interfaces.py	(revision 3526)
@@ -12,21 +12,2 @@
         required = True,
         )
-
-class IFaculty(Interface):
-    """Representation of a university faculty.
-    """
-    name = schema.TextLine(
-        title = u'Name of Faculty',
-        default = u'Unnamed',
-        required = True,
-        )
-
-class IStudent(Interface):
-    """Representation of a student.
-    """
-    name = schema.TextLine(
-        title = u'Name of student',
-        default = u'Nobody',
-        required = True,
-        )
-
Index: /waeup/trunk/src/waeup/setup/app_setup.py
===================================================================
--- /waeup/trunk/src/waeup/setup/app_setup.py	(revision 3526)
+++ /waeup/trunk/src/waeup/setup/app_setup.py	(revision 3526)
@@ -0,0 +1,13 @@
+from waeup.hostel import hostelcontainer
+from waeup.students import studentcontainer
+from waeup.university import facultycontainer
+
+def setup(app):    
+    sc = studentcontainer.StudentContainer()
+    app["students"] = sc        
+    
+    hc = hostelcontainer.HostelContainer()
+    app["hostels"] = hc
+    
+    fc = facultycontainer.FacultyContainer()
+    app["faculties"] = fc
Index: eup/trunk/src/waeup/student.py
===================================================================
--- /waeup/trunk/src/waeup/student.py	(revision 3525)
+++ 	(revision )
@@ -1,63 +1,0 @@
-import grok
-from grok import index
-from interfaces import IStudent
-
-class Student(grok.Model):
-    """This is a student record.
-    """
-    grok.implements(IStudent)
-
-    def __init__(self, a):
-        """
-                 entry_mode,
-                 end_level,
-                 name,
-                 jamb_reg_no,
-                 level,
-                 id,
-                 lga,
-                 entry_session,
-                 matric_no,
-                 sex,
-                 phone,
-                 session,
-                 course,
-                 mode,
-                 faculty,
-                 department,
-                 verdict,
-                 review_state,
-                 perm_address,
-                 email):
-        self.entry_mode = entry_mode,
-        self.end_level = end_level,
-        self.name = name,
-        self.jamb_reg_no = jamb_reg_no,
-        self.level = level,
-        self.id = id,
-        self.lga = lga,
-        self.entry_session = entry_session,
-        self.matric_no = matric_no,
-        self.sex = sex,
-        self.phone = phone,
-        self.session = session,
-        self.course = course,
-        self.mode = mode,
-        self.faculty = faculty,
-        self.department = department,
-        self.verdict = verdict,
-        self.review_state = review_state,
-        self.perm_address = perm_address,
-        self.email = email
-
-        """
-        self.entry_mode, self.end_level, self.name, self.jamb_reg_no, self.level, self.id, self.lga, self.entry_session, self.matric_no, self.sex, self.phone, self.session, self.course, self.mode, self.faculty, self.department, self.verdict, self.review_state,  self.perm_address, self.email = a
-
-    def getCsv(self):
-        return self.entry_mode, self.end_level, self.name, self.jamb_reg_no, self.level, self.id, self.lga, self.entry_session, self.matric_no, self.sex, self.phone, self.session, self.course, self.mode, self.faculty, self.department, self.verdict, self.review_state,  self.perm_address, self.email
-
-class Edit(grok.EditForm):
-    form_fields = grok.AutoFields(Student)
-
-class Index(grok.DisplayForm):
-    form_fields = grok.AutoFields(Student)
Index: eup/trunk/src/waeup/student.txt
===================================================================
--- /waeup/trunk/src/waeup/student.txt	(revision 3525)
+++ 	(revision )
@@ -1,17 +1,0 @@
-waeup_ng.student
-****************
-
-:Test-Layer: nounit
-
-We can create students::
-
-  >>> from waeup_ng.student import Student
-  >>> s = Student(name='Foo Bar')
-  >>> s
-  <waeup_ng.student.Student object at 0x...>
-
-Students have a name::
-
-  >>> s.name
-  'Mr. Nobody'
-
Index: /waeup/trunk/src/waeup/students/interfaces.py
===================================================================
--- /waeup/trunk/src/waeup/students/interfaces.py	(revision 3526)
+++ /waeup/trunk/src/waeup/students/interfaces.py	(revision 3526)
@@ -0,0 +1,14 @@
+##
+## interfaces.py
+from zope.interface import Interface
+from zope import schema
+
+class IStudent(Interface):
+    """Representation of a student.
+    """
+    name = schema.TextLine(
+        title = u'Name of student',
+        default = u'Nobody',
+        required = True,
+        )
+
Index: /waeup/trunk/src/waeup/students/student.py
===================================================================
--- /waeup/trunk/src/waeup/students/student.py	(revision 3526)
+++ /waeup/trunk/src/waeup/students/student.py	(revision 3526)
@@ -0,0 +1,45 @@
+import grok
+from grok import index
+from interfaces import IStudent
+
+class Student(grok.Model):
+    """This is a student record.
+    """
+    grok.implements(IStudent)
+
+    def __init__(self, a):
+        """
+        TODO: REFACTOR TO IMPORT METHOD
+        Fields:
+                 entry_mode,
+                 end_level,
+                 name,
+                 jamb_reg_no,
+                 level,
+                 id,
+                 lga,
+                 entry_session,
+                 matric_no,
+                 sex,
+                 phone,
+                 session,
+                 course,
+                 mode,
+                 faculty,
+                 department,
+                 verdict,
+                 review_state,
+                 perm_address,
+                 email
+
+        """
+        self.entry_mode, self.end_level, self.name, self.jamb_reg_no, self.level, self.id, self.lga, self.entry_session, self.matric_no, self.sex, self.phone, self.session, self.course, self.mode, self.faculty, self.department, self.verdict, self.review_state,  self.perm_address, self.email = a
+
+    def getCsv(self):
+        return self.entry_mode, self.end_level, self.name, self.jamb_reg_no, self.level, self.id, self.lga, self.entry_session, self.matric_no, self.sex, self.phone, self.session, self.course, self.mode, self.faculty, self.department, self.verdict, self.review_state,  self.perm_address, self.email
+
+class Edit(grok.EditForm):
+    form_fields = grok.AutoFields(Student)
+
+class Index(grok.DisplayForm):
+    form_fields = grok.AutoFields(Student)
Index: /waeup/trunk/src/waeup/students/student.txt
===================================================================
--- /waeup/trunk/src/waeup/students/student.txt	(revision 3526)
+++ /waeup/trunk/src/waeup/students/student.txt	(revision 3526)
@@ -0,0 +1,17 @@
+waeup_ng.student
+****************
+
+:Test-Layer: nounit
+
+We can create students::
+
+  >>> from waeup_ng.student import Student
+  >>> s = Student(name='Foo Bar')
+  >>> s
+  <waeup_ng.student.Student object at 0x...>
+
+Students have a name::
+
+  >>> s.name
+  'Mr. Nobody'
+
Index: /waeup/trunk/src/waeup/students/studentcontainer.py
===================================================================
--- /waeup/trunk/src/waeup/students/studentcontainer.py	(revision 3526)
+++ /waeup/trunk/src/waeup/students/studentcontainer.py	(revision 3526)
@@ -0,0 +1,9 @@
+import grok
+
+from waeup.basecontainer import BaseContainer
+
+class StudentContainer(BaseContainer):
+    """
+    The node containing the student models
+    """
+    name = u"Students"
Index: /waeup/trunk/src/waeup/university/faculty.py
===================================================================
--- /waeup/trunk/src/waeup/university/faculty.py	(revision 3526)
+++ /waeup/trunk/src/waeup/university/faculty.py	(revision 3526)
@@ -0,0 +1,14 @@
+import grok
+from interfaces import IFaculty
+
+class Faculty(grok.Container):
+    grok.implements(IFaculty)
+
+    def __init__(self, name=u'Unnamed Faculty', **kw):
+        super(Faculty, self).__init__(**kw)
+        self.name = name
+
+class Index(grok.DisplayForm):
+    form_fields = grok.AutoFields(IFaculty)
+
+
Index: /waeup/trunk/src/waeup/university/facultycontainer.py
===================================================================
--- /waeup/trunk/src/waeup/university/facultycontainer.py	(revision 3526)
+++ /waeup/trunk/src/waeup/university/facultycontainer.py	(revision 3526)
@@ -0,0 +1,16 @@
+import grok
+from waeup.basecontainer import BaseContainer
+from interfaces import IFaculty
+
+class FacultyContainer(BaseContainer):
+    
+    name = u'Faculties'
+
+class AddFaculty(grok.AddForm):
+    form_fields = grok.AutoFields(IFaculty)
+
+    @grok.action('Add Faculty')
+    def addFaculty(self, name, *args, **kw):
+        new_fac = Faculty(name=name)
+        self.context[name] = new_fac
+        self.redirect(self.url(new_fac))
Index: /waeup/trunk/src/waeup/university/interfaces.py
===================================================================
--- /waeup/trunk/src/waeup/university/interfaces.py	(revision 3526)
+++ /waeup/trunk/src/waeup/university/interfaces.py	(revision 3526)
@@ -0,0 +1,11 @@
+from zope.interface import Interface
+from zope import schema
+
+class IFaculty(Interface):
+    """Representation of a university faculty.
+    """
+    name = schema.TextLine(
+        title = u'Name of Faculty',
+        default = u'Unnamed',
+        required = True,
+        )
