listener completed