Make listener a field so it doesn't get disposed waiting