verified compatibility with twisted 14.0.2 and the latest zope.interface and refactored the code to make it more modular.