Index: /waeup/trunk/src/waeup/basecontainer_templates/add.pt
===================================================================
--- /waeup/trunk/src/waeup/basecontainer_templates/add.pt	(revision 3527)
+++ /waeup/trunk/src/waeup/basecontainer_templates/add.pt	(revision 3528)
@@ -6,5 +6,5 @@
 
 <body>
-    <h1>HUHU</h1>
+    <h1>Add Form</h1>
 <form action="." tal:attributes="action request/URL" method="post"
       class="edit-form" enctype="multipart/form-data">
Index: /waeup/trunk/src/waeup/baseitem.py
===================================================================
--- /waeup/trunk/src/waeup/baseitem.py	(revision 3528)
+++ /waeup/trunk/src/waeup/baseitem.py	(revision 3528)
@@ -0,0 +1,18 @@
+import grok
+
+class BaseItem(grok.Model):
+    """
+    Base item
+    """
+
+class Edit(grok.EditForm):
+    
+    def update(self):
+        self.form_fields = grok.AutoFields(self.context.__class__)
+        grok.EditForm.update(self)
+
+class Index(grok.DisplayForm):
+
+    def update(self):
+        self.form_fields = grok.AutoFields(self.context.__class__)
+        grok.DisplayForm.update(self)
Index: /waeup/trunk/src/waeup/baseitem_templates/edit.pt
===================================================================
--- /waeup/trunk/src/waeup/baseitem_templates/edit.pt	(revision 3528)
+++ /waeup/trunk/src/waeup/baseitem_templates/edit.pt	(revision 3528)
@@ -0,0 +1,74 @@
+<html>
+<head>
+  <link rel="stylesheet" type="text/css"
+	tal:attributes="href static/simple.css" />
+</head>
+
+<body>
+    <h1>Edit Form</h1>
+  <a href="" tal:attributes="href python:view.url(context.__parent__)">Up</a>
+  <a href="" tal:attributes="href python:view.url(context)">View</a>
+<form action="." tal:attributes="action request/URL" method="post"
+      class="edit-form" enctype="multipart/form-data">
+
+  <h1 i18n:translate=""
+    tal:condition="view/label"
+    tal:content="view/label">Label</h1>
+
+  <div class="form-status"
+    tal:define="status view/status"
+    tal:condition="status">
+
+    <div i18n:translate="" tal:content="view/status">
+      Form status summary
+    </div>
+
+    <ul class="errors" tal:condition="view/errors">
+      <li tal:repeat="error view/error_views">
+         <span tal:replace="structure error">Error Type</span>
+      </li>
+    </ul>
+  </div>
+
+  <table class="form-fields">
+    <tbody>
+      <tal:block repeat="widget view/widgets">
+        <tr>
+          <td class="label" tal:define="hint widget/hint">
+            <label tal:condition="python:hint"
+                   tal:attributes="for widget/name">
+              <span class="required" tal:condition="widget/required"
+              >*</span><span i18n:translate=""
+                             tal:content="widget/label">label</span>
+            </label>
+            <label tal:condition="python:not hint"
+                   tal:attributes="for widget/name">
+              <span class="required" tal:condition="widget/required"
+              >*</span><span i18n:translate=""
+                             tal:content="widget/label">label</span>
+            </label>
+          </td>
+          <td class="field">
+            <div class="widget" tal:content="structure widget">
+              <input type="text" />
+            </div>
+            <div class="error" tal:condition="widget/error">
+              <span tal:replace="structure widget/error">error</span>
+            </div>
+          </td>
+        </tr>
+      </tal:block>
+    </tbody>
+  </table>
+
+  <div id="actionsView">
+    <span class="actionButtons" tal:condition="view/availableActions">
+      <input tal:repeat="action view/actions"
+             tal:replace="structure action/render"
+             />
+    </span>
+  </div>
+</form>
+
+</body>
+</html>
Index: /waeup/trunk/src/waeup/baseitem_templates/index.pt
===================================================================
--- /waeup/trunk/src/waeup/baseitem_templates/index.pt	(revision 3528)
+++ /waeup/trunk/src/waeup/baseitem_templates/index.pt	(revision 3528)
@@ -0,0 +1,41 @@
+<html>
+<head>
+  <link rel="stylesheet" type="text/css"
+	tal:attributes="href static/simple.css" />
+</head>
+
+<body>
+  <h1>View</h1>
+  <a href="" tal:attributes="href python:view.url(context.__parent__)">Up</a>
+  <a href="" tal:attributes="href python:view.url(context, 'edit')">Edit</a>
+  <table class="listing">
+    <thead>
+      <tr>
+        <th class="label-column">&nbsp;</th>
+        <th>&nbsp;</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tal:block repeat="widget view/widgets">
+        <tr tal:define="odd repeat/widget/odd"
+          tal:attributes="class python: odd and 'odd' or 'even'">
+          <td class="fieldname">
+            <tal:block content="widget/label"/>
+          </td>
+          <td>
+            <input tal:replace="structure widget" />
+          </td>
+        </tr>
+      </tal:block>
+    </tbody>
+    <tfoot>
+      <tr class="controls">
+        <td colspan="2" class="align-right">
+          <input tal:repeat="action view/actions" 
+            tal:replace="structure action/render" />
+        </td>
+      </tr>
+    </tfoot>
+  </table>
+</body>
+</html>
Index: /waeup/trunk/src/waeup/students/student.py
===================================================================
--- /waeup/trunk/src/waeup/students/student.py	(revision 3527)
+++ /waeup/trunk/src/waeup/students/student.py	(revision 3528)
@@ -3,5 +3,7 @@
 from interfaces import IStudent
 
-class Student(grok.Model):
+from waeup.baseitem import BaseItem
+
+class Student(BaseItem):
     """This is a student record.
     """
@@ -41,8 +43,2 @@
     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)
