EventListener

Alternative way of event observer pattern. Java-like implementation with
Event and EventListener classes.