TODO: add dbus support