added explanations for listeners