use the same type of listener as google (added cancel though)