diff --git a/cybertools/browser/url.py b/cybertools/browser/url.py
index 0af2542..e87f523 100644
--- a/cybertools/browser/url.py
+++ b/cybertools/browser/url.py
@@ -1,29 +1,11 @@
-#
-# Copyright (c) 2017 Helmut Merz helmutm@cy55.de
-#
-# 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
-#
+# cybertools.browser.url
""" URL manipulation utilities
-
-$Id$
"""
from urlparse import urlparse
-from zope.app.container.traversal import ItemTraverser
+from zope.container.traversal import ItemTraverser
from zope.interface import Interface, implements
diff --git a/cybertools/catalog/README.txt b/cybertools/catalog/README.txt
index cf6a8de..d11444d 100644
--- a/cybertools/catalog/README.txt
+++ b/cybertools/catalog/README.txt
@@ -43,7 +43,7 @@ for testing purposes here) and a catalog with a few indexes.
In addition we need a class for the content objects that we want
to index and query.
- >>> from zope.app.container.contained import Contained
+ >>> from zope.container.contained import Contained
>>> class Content(Contained):
... def __init__(self, id, f1='', f2='', f3='', t1='', t2='', k1=[]):
... self.id = id
diff --git a/cybertools/catalog/keyword.py b/cybertools/catalog/keyword.py
index 9453d96..f43b9fa 100644
--- a/cybertools/catalog/keyword.py
+++ b/cybertools/catalog/keyword.py
@@ -6,9 +6,9 @@
import zope.index.keyword
import zope.interface
-import zope.app.container.contained
import zope.catalog.attribute
import zope.catalog.interfaces
+import zope.container.contained
class IKeywordIndex(zope.catalog.interfaces.IAttributeIndex,
@@ -20,6 +20,6 @@ class IKeywordIndex(zope.catalog.interfaces.IAttributeIndex,
@zope.interface.implementer(IKeywordIndex)
class KeywordIndex(zope.catalog.attribute.AttributeIndex,
zope.index.keyword.KeywordIndex,
- zope.app.container.contained.Contained):
+ zope.container.contained.Contained):
pass
diff --git a/cybertools/composer/schema/browser/form.py b/cybertools/composer/schema/browser/form.py
index db9c337..80bcc4d 100644
--- a/cybertools/composer/schema/browser/form.py
+++ b/cybertools/composer/schema/browser/form.py
@@ -1,30 +1,11 @@
-#
-# Copyright (c) 2007 Helmut Merz helmutm@cy55.de
-#
-# 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
-#
+# cybertools.composer.schema.browser.form
-"""
-View(s) for forms based on composer.schema.
-
-$Id$
+""" View(s) for forms based on composer.schema.
"""
from zope import component, interface
-from zope.app.container.interfaces import INameChooser
from zope.cachedescriptors.property import Lazy
+from zope.container.interfaces import INameChooser
from zope.interface import Interface
from zope.event import notify
from zope.lifecycleevent import ObjectCreatedEvent, ObjectModifiedEvent
diff --git a/cybertools/container/README.txt b/cybertools/container/README.txt
index 53b9360..638d425 100644
--- a/cybertools/container/README.txt
+++ b/cybertools/container/README.txt
@@ -1,11 +1,9 @@
Ordered Containers
==================
- ($Id$)
-
Let's add an ordered container and place some objects in it:
- >>> from zope.app.container.ordered import OrderedContainer
+ >>> from zope.container.ordered import OrderedContainer
>>> c1 = OrderedContainer()
>>> c1['sub1'] = OrderedContainer()
>>> c1['sub2'] = OrderedContainer()
diff --git a/cybertools/container/base.py b/cybertools/container/base.py
index 0b8b665..ba50733 100644
--- a/cybertools/container/base.py
+++ b/cybertools/container/base.py
@@ -3,8 +3,8 @@
""" Ordered container implementation.
"""
-from zope.browserpage import ViewPageTemplateFile
from zope.app.container.browser.contents import JustContents
+from zope.browserpage import ViewPageTemplateFile
from zope.i18nmessageid import ZopeMessageFactory as _
from zope.cachedescriptors.property import Lazy
from zope.interface import Interface
diff --git a/cybertools/container/configure.zcml b/cybertools/container/configure.zcml
index 12d394a..95729e2 100644
--- a/cybertools/container/configure.zcml
+++ b/cybertools/container/configure.zcml
@@ -6,7 +6,7 @@
i18n_domain="zope">
>> from zope.app.container.interfaces import IObjectRemovedEvent
- >>> from zope.app.container.contained import ObjectRemovedEvent
+ >>> from zope.lifecycleevent.interfaces import IObjectRemovedEvent
+ >>> from zope.container.contained import ObjectRemovedEvent
>>> from zope.event import notify
>>> from zope.interface import Interface
>>> from cybertools.relation.registry import invalidateRelations
diff --git a/cybertools/relation/configure.zcml b/cybertools/relation/configure.zcml
index 1d08bce..c92b442 100644
--- a/cybertools/relation/configure.zcml
+++ b/cybertools/relation/configure.zcml
@@ -1,5 +1,3 @@
-
-
@@ -38,13 +36,13 @@
diff --git a/cybertools/storage/pzope/base.py b/cybertools/storage/pzope/base.py
index c26f218..884f73a 100644
--- a/cybertools/storage/pzope/base.py
+++ b/cybertools/storage/pzope/base.py
@@ -1,32 +1,13 @@
-#
-# Copyright (c) 2011 Helmut Merz helmutm@cy55.de
-#
-# 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
-#
+# cybertools.storage.pzope.base
-"""
-Storage manager implementation for a full Zope 3 environment.
-
-$Id$
+""" Storage manager implementation for a full Zope 3 environment.
"""
from persistent import Persistent
from zope import component
from zope.interface import implements
-from zope.app.component.hooks import getSite
-from zope.app.container.interfaces import IContained
+from zope.component.hooks import getSite
+from zope.container.interfaces import IContained
from zope.intid.interfaces import IIntIds
from zope.traversing.api import traverse, getPath
diff --git a/cybertools/typology/interfaces.py b/cybertools/typology/interfaces.py
index a27eafb..3c1a47d 100644
--- a/cybertools/typology/interfaces.py
+++ b/cybertools/typology/interfaces.py
@@ -1,28 +1,9 @@
-#
-# Copyright (c) 2006 Helmut Merz helmutm@cy55.de
-#
-# 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
-#
+# cybertools.typology.interfaces
-"""
-interface definitions for the typology package.
-
-$Id$
+""" interface definitions for the typology package.
"""
-from zope.app.container.interfaces import IContainer
+from zope.container.interfaces import IContainer
from zope import schema
from zope.configuration.fields import GlobalObject
from zope.interface import Interface, Attribute