Perhaps we should prevent attach listener more than once.