Index: /main/waeup.sirp/trunk/src/waeup/sirp/hostels/__init__.py
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/hostels/__init__.py	(revision 6962)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/hostels/__init__.py	(revision 6963)
@@ -3,8 +3,9 @@
 # Make this a package.
 from waeup.sirp.hostels.container import HostelsContainer
-from waeup.sirp.hostels.hostel import Hostel
+from waeup.sirp.hostels.hostel import Hostel, Bed
 
 __all__ = [
     'HostelsContainer',
     'Hostel',
+    'Bed',
     ]
Index: /main/waeup.sirp/trunk/src/waeup/sirp/hostels/hostel.py
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/hostels/hostel.py	(revision 6962)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/hostels/hostel.py	(revision 6963)
@@ -21,5 +21,5 @@
 from grok import index
 from waeup.sirp.utils.helpers import attrs_to_fields
-from waeup.sirp.hostels.interfaces import IHostel
+from waeup.sirp.hostels.interfaces import IHostel, IBed
 
 class Hostel(grok.Container):
@@ -33,3 +33,29 @@
         return grok.getSite()['hostels'].logger_info(ob_class,target,comment)
 
+    def addBed(self, bed):
+        """Add a hostel.
+        """
+        if not IBed.providedBy(bed):
+            raise TypeError(
+                'Hostels contain only IBed instances')
+        self[hostel.bed_id] = bed
+        return
+
 Hostel = attrs_to_fields(Hostel)
+
+class Bed(grok.Container):
+    """This is a bed.
+    """
+    grok.implements(IBed)
+    grok.provides(IBed)
+
+    def getBedCoordinates(self):
+        """Determine the coordinates from bed_id.
+        """
+        pass
+
+    def loggerInfo(self, ob_class, comment=None):
+        target = self.__name__
+        return grok.getSite()['hostels'].logger_info(ob_class,target,comment)
+
+Bed = attrs_to_fields(Bed)
Index: /main/waeup.sirp/trunk/src/waeup/sirp/hostels/interfaces.py
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/hostels/interfaces.py	(revision 6962)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/hostels/interfaces.py	(revision 6963)
@@ -81,2 +81,39 @@
             ),
         )
+
+class IBed(IWAeUPObject):
+    """A base representation of beds.
+
+    """
+
+    def loggerInfo(ob_class, comment):
+        """Adds an INFO message to the log file
+        """
+
+    def getBedCoordinates():
+        """Determine the coordinates from bed_id.
+        """
+
+    bed_id = schema.TextLine(
+        title = u'Bed Id',
+        required = True,
+        default = u'',
+        )
+
+    bed_type = schema.TextLine(
+        title = u'Bed Type',
+        required = True,
+        default = u'',
+        )
+
+    sort_id = schema.Int(
+        title = u'Sort Id',
+        required = True,
+        default = 100,
+        )
+
+    owner = schema.TextLine(
+        title = u'Owner (Student)',
+        required = True,
+        default = u'',
+        )
Index: /main/waeup.sirp/trunk/src/waeup/sirp/hostels/tests.py
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/hostels/tests.py	(revision 6962)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/hostels/tests.py	(revision 6963)
@@ -25,7 +25,7 @@
 from waeup.sirp.app import University
 from waeup.sirp.hostels.interfaces import (
-    IHostelsContainer, IHostel)
+    IHostelsContainer, IHostel, IBed)
 from waeup.sirp.hostels.container import HostelsContainer
-from waeup.sirp.hostels.hostel import Hostel
+from waeup.sirp.hostels.hostel import Hostel, Bed
 from waeup.sirp.testing import (FunctionalLayer, FunctionalTestCase)
 
@@ -51,4 +51,12 @@
             verifyObject(
                 IHostel, Hostel())
+            )
+        self.assertTrue(
+            verifyClass(
+                IBed, Bed)
+            )
+        self.assertTrue(
+            verifyObject(
+                IBed, Bed())
             )
         return
