add fancy listener