You can buy this project and download/modify it how often you want.
This package contains interfaces and classes for listening to events.