diff --git a/modem_cdma_proxy.cc b/modem_cdma_proxy.cc
index aab7c4a..4380c2d 100644
--- a/modem_cdma_proxy.cc
+++ b/modem_cdma_proxy.cc
@@ -10,10 +10,11 @@
 
 namespace shill {
 
-ModemCDMAProxy::ModemCDMAProxy(DBus::Connection *connection,
+ModemCDMAProxy::ModemCDMAProxy(ModemCDMAProxyListener *listener,
+                               DBus::Connection *connection,
                                const string &path,
                                const string &service)
-    : proxy_(connection, path, service) {}
+    : proxy_(listener, connection, path, service) {}
 
 ModemCDMAProxy::~ModemCDMAProxy() {}
 
@@ -22,10 +23,16 @@
   proxy_.GetRegistrationState(*cdma_1x_state, *evdo_state);
 }
 
-ModemCDMAProxy::Proxy::Proxy(DBus::Connection *connection,
+uint32 ModemCDMAProxy::GetSignalQuality() {
+  return proxy_.GetSignalQuality();
+}
+
+ModemCDMAProxy::Proxy::Proxy(ModemCDMAProxyListener *listener,
+                             DBus::Connection *connection,
                              const string &path,
                              const string &service)
-    : DBus::ObjectProxy(*connection, path, service.c_str()) {}
+    : DBus::ObjectProxy(*connection, path, service.c_str()),
+      listener_(listener) {}
 
 ModemCDMAProxy::Proxy::~Proxy() {}
 
@@ -39,17 +46,15 @@
 }
 
 void ModemCDMAProxy::Proxy::SignalQuality(const uint32 &quality) {
-  VLOG(2) << __func__;
-  // TODO(petkov): Implement this.
-  NOTIMPLEMENTED();
+  VLOG(2) << __func__ << "(" << quality << ")";
+  listener_->OnCDMASignalQualityChanged(quality);
 }
 
 void ModemCDMAProxy::Proxy::RegistrationStateChanged(
-    const uint32_t &cdma_1x_state,
-    const uint32_t &evdo_state) {
-  VLOG(2) << __func__;
-  // TODO(petkov): Implement this.
-  NOTIMPLEMENTED();
+    const uint32 &cdma_1x_state,
+    const uint32 &evdo_state) {
+  VLOG(2) << __func__ << "(" << cdma_1x_state << ", " << evdo_state << ")";
+  listener_->OnCDMARegistrationStateChanged(cdma_1x_state, evdo_state);
 }
 
 }  // namespace shill
