Moving all listener types to their own classes with proper constructors.