added new event listener classes
uses annotations, helps simplify code