new EventListener wrapper classes for more convenient programming. Should we make them interfaces???