changed Listener class from interface to abstract class

Please note the change in usage in child classes.
reverted Event class changes, and other stuff