Purging objects automatically

I'm trying to implement automatic purging on a content type and, according to plone.cachepurging documentation, I added the following to the configure.zcml file:

  <class class="collective.polls.content.poll.Poll">
    <implements interface="z3c.caching.interfaces.IPurgeable" />
  </class>

now I'm adding a test for this feature but the result is weird:

    def test_purging(self):
        from zope.component import eventtesting
        from zope.event import notify
        from zope.lifecycleevent import ObjectModifiedEvent
        eventtesting.setUp()
        notify(ObjectModifiedEvent(self.poll))
        events = eventtesting.getEvents()

results in the following:

(Pdb) pp events
[<z3c.caching.purge.Purge object at 0x7f094165e110>,
 <zope.lifecycleevent.ObjectModifiedEvent object at 0x7f0941d88690>,
 <z3c.caching.purge.Purge object at 0x7f0941657d50>]

does anybody know why the Purge event is fired twice? is that normal?

here is the implementation in case others want to do the same with their content types:

Might be multiple objects, ie the object and the parent?
Add a pdb.set_trace in the __init__ of z3c.caching.purge.Purge and see what happens.

no, they are exactly the same object:

(Pdb) pp events
[<z3c.caching.purge.Purge object at 0x7f959679db90>,
 <zope.lifecycleevent.ObjectModifiedEvent object at 0x7f9596ebb8d0>,
 <z3c.caching.purge.Purge object at 0x7f959679db50>]
(Pdb) pp [e.object for e in events]
[<Poll at /plone/folder/poll>,
 <Poll at /plone/folder/poll>,
 <Poll at /plone/folder/poll>]