attempt partial application instead of storing that nasty listener member variable