move addListener into stuff and add some comments