fixed listener must be a function.