listener new message implementation