addListener => listen