simplified events by removing IncompleteListener and making Listener a proxy for its EventsTree object
removed call() method and added callback argument to listen/capture
made the addListener method private - now adds nothing over listen/capture