0.1.8

This is for the 0.1.8 release.
I tried moving the definition last in these extends but that will break tests, where you shouldn't really override the methods in listener and publisher methods.

I wonder if we should keep these tests. TBH as a user I'd like to override them if it's possible. I'm on the side that we should let the user redefine the methods if they want to.