no need for self here - addListener takes a this as the last argument