using dbus-c++ interface; also, slightly more asynchronous approach to handling messages