diff --git a/mdt/devices.py b/mdt/devices.py
index 8d67056..0d8c1c0 100644
--- a/mdt/devices.py
+++ b/mdt/devices.py
@@ -11,20 +11,20 @@
         print('Devices found:')
         discoveries = self.discoverer.discoveries
         for host, address in discoveries.items():
-            print('%s\t\t%s' % (host, address))
+            print('{0}\t\t({1})'.format(host, address))
 
 class DevicesWaitCommand:
     def __init__(self):
-        self.discoverer = Discoverer()
+        self.found_devices = False
+        self.discoverer = Discoverer(self)
+
+    def add_device(self, hostname, address):
+        self.found_devices = True
+        self.hostname = hostname
+        self.address = address
 
     def run(self, args):
         print('Waiting for device...')
-        found_device = False
-        while True:
-            sleep(1)
-            discoveries = self.discoverer.discoveries
-            if discoveries:
-                break
-        print('Devices found:')
-        for host, address in self.discoverer.discoveries.items():
-            print('%s\t\t%s' % (host, address))
+        while not self.found_devices:
+            sleep(0.1)
+        print('Device found: {0} ({1})'.format(self.hostname, self.address))
diff --git a/mdt/discoverer.py b/mdt/discoverer.py
index b4664c6..78d5255 100644
--- a/mdt/discoverer.py
+++ b/mdt/discoverer.py
@@ -4,9 +4,10 @@
 import socket
 
 class Discoverer:
-    def __init__(self):
+    def __init__(self, listener = None):
         self.zeroconf = Zeroconf()
         self.discoveries = {}
+        self.listener = listener
         browser = ServiceBrowser(self.zeroconf, "_google_mdt._tcp.local.", self)
 
     def add_service(self, zeroconf, type, name):
@@ -15,7 +16,11 @@
             hostname = info.server.split('.')[0]
             address = socket.inet_ntoa(cast(bytes, info.address))
             self.discoveries[hostname] = address
+            if self.listener and hasattr(self.listener, "add_device"):
+                self.listener.add_device(hostname, address)
 
     def remove_service(self, zeroconf, type, name):
         info = self.zeroconf.get_service_info(type, name)
+        if self.listener and hasattr(self.listener, "remove_device"):
+            self.listener.remove_device(info.server, self.discoveries[info.server])
         del(self.discoveries[info.server])
