rewrite to use UPower dbus interface