using now zope.interface.implementer instead of implements