@Override
    public Monitor monitor(final Host bookmark, final Callback callback) {
        final String url = toURL(bookmark);
        return new Reachability.Monitor() {
            private final SystemConfigurationReachability.Native monitor = SystemConfigurationReachability.Native.monitorForUrl(url);
            private final NotificationFilterCallback listener = new NotificationFilterCallback(callback);

            @Override
            public Monitor start() {
                notificationCenter.addObserver(listener.id(), Foundation.selector("notify:"),
                        "kNetworkReachabilityChangedNotification", monitor.id());
                monitor.startReachabilityMonitor();
                return this;
            }

            @Override
            public Monitor stop() {
                monitor.stopReachabilityMonitor();
                notificationCenter.removeObserver(listener.id());
                return this;
            }
        };
    }
@Test
    public void testMonitor() {
        final Reachability r = new SystemConfigurationReachability();
        final Reachability.Monitor monitor = r.monitor(new Host(new TestProtocol(Scheme.https), "cyberduck.io", 80), () -> {
        }).start();
        assertSame(monitor, monitor.stop());
    }