fixed dupe bug, changed listener