no need to cast sender(). use listen directly.