Index: main/waeup.sirp/trunk/src/waeup/sirp/hostels/__init__.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/hostels/__init__.py	(revision 6951)
+++ main/waeup.sirp/trunk/src/waeup/sirp/hostels/__init__.py	(revision 6951)
@@ -0,0 +1,10 @@
+"""This package contains everything regarding hostels.
+"""
+# Make this a package.
+from waeup.sirp.hostels.container import HostelsContainer
+from waeup.sirp.hostels.hostel import Hostel
+
+__all__ = [
+    'HostelsContainer',
+    'Hostel',
+    ]
Index: main/waeup.sirp/trunk/src/waeup/sirp/hostels/container.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/hostels/container.py	(revision 6951)
+++ main/waeup.sirp/trunk/src/waeup/sirp/hostels/container.py	(revision 6951)
@@ -0,0 +1,40 @@
+## Copyright (C) 2011 Uli Fouquet & Henrik Bettermann
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##
+"""
+Containers which contain hostels.
+"""
+import grok
+from grok import index
+from waeup.sirp.hostels.interfaces import IHostelsContainer
+from waeup.sirp.utils.helpers import attrs_to_fields
+
+class HostelsContainer(grok.Container):
+    """This is a container for all kind of hostels.
+    """
+    grok.implements(IHostelsContainer)
+    grok.provides(IHostelsContainer)
+
+    def __init__(self):
+        super(HostelsContainer, self).__init__()
+        return
+
+    def archive(self, id=None):
+        raise NotImplementedError()
+
+    def clear(self, id=None, archive=True):
+        raise NotImplementedError()
+
+HostelsContainer = attrs_to_fields(HostelsContainer)
Index: main/waeup.sirp/trunk/src/waeup/sirp/hostels/hostel.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/hostels/hostel.py	(revision 6951)
+++ main/waeup.sirp/trunk/src/waeup/sirp/hostels/hostel.py	(revision 6951)
@@ -0,0 +1,37 @@
+## Copyright (C) 2011 Uli Fouquet & Henrik Bettermann
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##
+"""
+These are the hostels.
+"""
+import grok
+from datetime import datetime
+from grok import index
+from waeup.sirp.utils.helpers import attrs_to_fields
+from waeup.sirp.hostels.interfaces import IHostel
+
+class Hostel(grok.Container):
+    """This is a hostel.
+    """
+    grok.implements(IHostel)
+    grok.provides(IHostel)
+    grok.baseclass()
+
+    def __init__(self):
+        super(Hostel, self).__init__()
+        self.hostel_id = None
+        return
+
+Hostel = attrs_to_fields(Hostel)
Index: main/waeup.sirp/trunk/src/waeup/sirp/hostels/interfaces.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/hostels/interfaces.py	(revision 6951)
+++ main/waeup.sirp/trunk/src/waeup/sirp/hostels/interfaces.py	(revision 6951)
@@ -0,0 +1,15 @@
+##
+## interfaces.py
+from zope.interface import Attribute, invariant
+from zope import schema
+from waeup.sirp.interfaces import IWAeUPObject
+
+class IHostelsContainer(IWAeUPObject):
+    """A container for all kind of hostel objects.
+
+    """
+
+class IHostel(IWAeUPObject):
+    """A base representation of hostels.
+
+    """
Index: main/waeup.sirp/trunk/src/waeup/sirp/hostels/tests.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/hostels/tests.py	(revision 6951)
+++ main/waeup.sirp/trunk/src/waeup/sirp/hostels/tests.py	(revision 6951)
@@ -0,0 +1,56 @@
+## Copyright (C) 2011 Uli Fouquet & Henrik Bettermann
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+## 
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+## 
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##
+"""
+Tests for hostels.
+"""
+from zope.interface.verify import verifyClass, verifyObject
+from waeup.sirp.hostels.interfaces import (
+    IHostelsContainer, IHostel)
+from waeup.sirp.hostels.container import HostelsContainer
+from waeup.sirp.hostels.hostel import Hostel
+from waeup.sirp.testing import (FunctionalLayer, FunctionalTestCase)
+
+class HostelsContainerTestCase(FunctionalTestCase):
+
+    layer = FunctionalLayer
+
+    def test_interfaces(self):
+        # Make sure the correct interfaces are implemented.
+        self.assertTrue(
+            verifyClass(
+                IHostelsContainer, HostelsContainer)
+            )
+        self.assertTrue(
+            verifyObject(
+                IHostelsContainer, HostelsContainer())
+            )
+        self.assertTrue(
+            verifyClass(
+                IHostel, Hostel)
+            )
+        self.assertTrue(
+            verifyObject(
+                IHostel, Hostel())
+            )
+        return
+
+    def test_base(self):
+        # We cannot call the fundamental methods of a base in that case
+        container = HostelsContainer()
+        self.assertRaises(
+            NotImplementedError, container.archive)
+        self.assertRaises(
+            NotImplementedError, container.clear)
