lots of changes
diff --git a/interfaces/sensor.h b/interfaces/sensor.h
index c244ec3..9b3e15f 100644
--- a/interfaces/sensor.h
+++ b/interfaces/sensor.h
@@ -13,241 +13,188 @@
 
 
 /* ------------------------------------------------------------------------ */
-/* Declarations for org.openbmc.SensorInteger */
+/* Declarations for org.openbmc.SensorValue */
 
-#define TYPE_SENSOR_INTEGER (sensor_integer_get_type ())
-#define SENSOR_INTEGER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_SENSOR_INTEGER, SensorInteger))
-#define IS_SENSOR_INTEGER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_SENSOR_INTEGER))
-#define SENSOR_INTEGER_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), TYPE_SENSOR_INTEGER, SensorIntegerIface))
+#define TYPE_SENSOR_VALUE (sensor_value_get_type ())
+#define SENSOR_VALUE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_SENSOR_VALUE, SensorValue))
+#define IS_SENSOR_VALUE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_SENSOR_VALUE))
+#define SENSOR_VALUE_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), TYPE_SENSOR_VALUE, SensorValueIface))
 
-struct _SensorInteger;
-typedef struct _SensorInteger SensorInteger;
-typedef struct _SensorIntegerIface SensorIntegerIface;
+struct _SensorValue;
+typedef struct _SensorValue SensorValue;
+typedef struct _SensorValueIface SensorValueIface;
 
-struct _SensorIntegerIface
+struct _SensorValueIface
 {
   GTypeInterface parent_iface;
 
 
 
-  gboolean (*handle_get_units) (
-    SensorInteger *object,
-    GDBusMethodInvocation *invocation);
-
   gboolean (*handle_get_value) (
-    SensorInteger *object,
+    SensorValue *object,
     GDBusMethodInvocation *invocation);
 
   gboolean (*handle_init) (
-    SensorInteger *object,
+    SensorValue *object,
     GDBusMethodInvocation *invocation);
 
-  gboolean (*handle_set_poll_interval) (
-    SensorInteger *object,
-    GDBusMethodInvocation *invocation,
-    gint arg_poll_interval);
-
   gboolean (*handle_set_value) (
-    SensorInteger *object,
+    SensorValue *object,
     GDBusMethodInvocation *invocation,
-    gint arg_value);
+    GVariant *arg_value);
 
-  gint  (*get_heatbeat) (SensorInteger *object);
+  gint  (*get_heatbeat) (SensorValue *object);
 
-  gint  (*get_poll_interval) (SensorInteger *object);
+  gint  (*get_poll_interval) (SensorValue *object);
 
-  const gchar * (*get_units) (SensorInteger *object);
+  const gchar * (*get_units) (SensorValue *object);
 
-  gint  (*get_value) (SensorInteger *object);
+  GVariant * (*get_value) (SensorValue *object);
 
   void (*changed) (
-    SensorInteger *object,
-    gint arg_value,
+    SensorValue *object,
+    GVariant *arg_value,
     const gchar *arg_units);
 
   void (*heartbeat) (
-    SensorInteger *object,
+    SensorValue *object,
     const gchar *arg_bus_name);
 
 };
 
-GType sensor_integer_get_type (void) G_GNUC_CONST;
+GType sensor_value_get_type (void) G_GNUC_CONST;
 
-GDBusInterfaceInfo *sensor_integer_interface_info (void);
-guint sensor_integer_override_properties (GObjectClass *klass, guint property_id_begin);
+GDBusInterfaceInfo *sensor_value_interface_info (void);
+guint sensor_value_override_properties (GObjectClass *klass, guint property_id_begin);
 
 
 /* D-Bus method call completion functions: */
-void sensor_integer_complete_init (
-    SensorInteger *object,
+void sensor_value_complete_init (
+    SensorValue *object,
     GDBusMethodInvocation *invocation);
 
-void sensor_integer_complete_get_value (
-    SensorInteger *object,
+void sensor_value_complete_get_value (
+    SensorValue *object,
     GDBusMethodInvocation *invocation,
-    gint value);
+    GVariant *value);
 
-void sensor_integer_complete_set_value (
-    SensorInteger *object,
-    GDBusMethodInvocation *invocation);
-
-void sensor_integer_complete_get_units (
-    SensorInteger *object,
-    GDBusMethodInvocation *invocation,
-    const gchar *units);
-
-void sensor_integer_complete_set_poll_interval (
-    SensorInteger *object,
+void sensor_value_complete_set_value (
+    SensorValue *object,
     GDBusMethodInvocation *invocation);
 
 
 
 /* D-Bus signal emissions functions: */
-void sensor_integer_emit_changed (
-    SensorInteger *object,
-    gint arg_value,
+void sensor_value_emit_changed (
+    SensorValue *object,
+    GVariant *arg_value,
     const gchar *arg_units);
 
-void sensor_integer_emit_heartbeat (
-    SensorInteger *object,
+void sensor_value_emit_heartbeat (
+    SensorValue *object,
     const gchar *arg_bus_name);
 
 
 
 /* D-Bus method calls: */
-void sensor_integer_call_init (
-    SensorInteger *proxy,
+void sensor_value_call_init (
+    SensorValue *proxy,
     GCancellable *cancellable,
     GAsyncReadyCallback callback,
     gpointer user_data);
 
-gboolean sensor_integer_call_init_finish (
-    SensorInteger *proxy,
+gboolean sensor_value_call_init_finish (
+    SensorValue *proxy,
     GAsyncResult *res,
     GError **error);
 
-gboolean sensor_integer_call_init_sync (
-    SensorInteger *proxy,
+gboolean sensor_value_call_init_sync (
+    SensorValue *proxy,
     GCancellable *cancellable,
     GError **error);
 
-void sensor_integer_call_get_value (
-    SensorInteger *proxy,
+void sensor_value_call_get_value (
+    SensorValue *proxy,
     GCancellable *cancellable,
     GAsyncReadyCallback callback,
     gpointer user_data);
 
-gboolean sensor_integer_call_get_value_finish (
-    SensorInteger *proxy,
-    gint *out_value,
+gboolean sensor_value_call_get_value_finish (
+    SensorValue *proxy,
+    GVariant **out_value,
     GAsyncResult *res,
     GError **error);
 
-gboolean sensor_integer_call_get_value_sync (
-    SensorInteger *proxy,
-    gint *out_value,
+gboolean sensor_value_call_get_value_sync (
+    SensorValue *proxy,
+    GVariant **out_value,
     GCancellable *cancellable,
     GError **error);
 
-void sensor_integer_call_set_value (
-    SensorInteger *proxy,
-    gint arg_value,
+void sensor_value_call_set_value (
+    SensorValue *proxy,
+    GVariant *arg_value,
     GCancellable *cancellable,
     GAsyncReadyCallback callback,
     gpointer user_data);
 
-gboolean sensor_integer_call_set_value_finish (
-    SensorInteger *proxy,
+gboolean sensor_value_call_set_value_finish (
+    SensorValue *proxy,
     GAsyncResult *res,
     GError **error);
 
-gboolean sensor_integer_call_set_value_sync (
-    SensorInteger *proxy,
-    gint arg_value,
-    GCancellable *cancellable,
-    GError **error);
-
-void sensor_integer_call_get_units (
-    SensorInteger *proxy,
-    GCancellable *cancellable,
-    GAsyncReadyCallback callback,
-    gpointer user_data);
-
-gboolean sensor_integer_call_get_units_finish (
-    SensorInteger *proxy,
-    gchar **out_units,
-    GAsyncResult *res,
-    GError **error);
-
-gboolean sensor_integer_call_get_units_sync (
-    SensorInteger *proxy,
-    gchar **out_units,
-    GCancellable *cancellable,
-    GError **error);
-
-void sensor_integer_call_set_poll_interval (
-    SensorInteger *proxy,
-    gint arg_poll_interval,
-    GCancellable *cancellable,
-    GAsyncReadyCallback callback,
-    gpointer user_data);
-
-gboolean sensor_integer_call_set_poll_interval_finish (
-    SensorInteger *proxy,
-    GAsyncResult *res,
-    GError **error);
-
-gboolean sensor_integer_call_set_poll_interval_sync (
-    SensorInteger *proxy,
-    gint arg_poll_interval,
+gboolean sensor_value_call_set_value_sync (
+    SensorValue *proxy,
+    GVariant *arg_value,
     GCancellable *cancellable,
     GError **error);
 
 
 
 /* D-Bus property accessors: */
-gint sensor_integer_get_value (SensorInteger *object);
-void sensor_integer_set_value (SensorInteger *object, gint value);
+GVariant *sensor_value_get_value (SensorValue *object);
+GVariant *sensor_value_dup_value (SensorValue *object);
+void sensor_value_set_value (SensorValue *object, GVariant *value);
 
-const gchar *sensor_integer_get_units (SensorInteger *object);
-gchar *sensor_integer_dup_units (SensorInteger *object);
-void sensor_integer_set_units (SensorInteger *object, const gchar *value);
+const gchar *sensor_value_get_units (SensorValue *object);
+gchar *sensor_value_dup_units (SensorValue *object);
+void sensor_value_set_units (SensorValue *object, const gchar *value);
 
-gint sensor_integer_get_poll_interval (SensorInteger *object);
-void sensor_integer_set_poll_interval (SensorInteger *object, gint value);
+gint sensor_value_get_poll_interval (SensorValue *object);
+void sensor_value_set_poll_interval (SensorValue *object, gint value);
 
-gint sensor_integer_get_heatbeat (SensorInteger *object);
-void sensor_integer_set_heatbeat (SensorInteger *object, gint value);
+gint sensor_value_get_heatbeat (SensorValue *object);
+void sensor_value_set_heatbeat (SensorValue *object, gint value);
 
 
 /* ---- */
 
-#define TYPE_SENSOR_INTEGER_PROXY (sensor_integer_proxy_get_type ())
-#define SENSOR_INTEGER_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_SENSOR_INTEGER_PROXY, SensorIntegerProxy))
-#define SENSOR_INTEGER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_SENSOR_INTEGER_PROXY, SensorIntegerProxyClass))
-#define SENSOR_INTEGER_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_SENSOR_INTEGER_PROXY, SensorIntegerProxyClass))
-#define IS_SENSOR_INTEGER_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_SENSOR_INTEGER_PROXY))
-#define IS_SENSOR_INTEGER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_SENSOR_INTEGER_PROXY))
+#define TYPE_SENSOR_VALUE_PROXY (sensor_value_proxy_get_type ())
+#define SENSOR_VALUE_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_SENSOR_VALUE_PROXY, SensorValueProxy))
+#define SENSOR_VALUE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_SENSOR_VALUE_PROXY, SensorValueProxyClass))
+#define SENSOR_VALUE_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_SENSOR_VALUE_PROXY, SensorValueProxyClass))
+#define IS_SENSOR_VALUE_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_SENSOR_VALUE_PROXY))
+#define IS_SENSOR_VALUE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_SENSOR_VALUE_PROXY))
 
-typedef struct _SensorIntegerProxy SensorIntegerProxy;
-typedef struct _SensorIntegerProxyClass SensorIntegerProxyClass;
-typedef struct _SensorIntegerProxyPrivate SensorIntegerProxyPrivate;
+typedef struct _SensorValueProxy SensorValueProxy;
+typedef struct _SensorValueProxyClass SensorValueProxyClass;
+typedef struct _SensorValueProxyPrivate SensorValueProxyPrivate;
 
-struct _SensorIntegerProxy
+struct _SensorValueProxy
 {
   /*< private >*/
   GDBusProxy parent_instance;
-  SensorIntegerProxyPrivate *priv;
+  SensorValueProxyPrivate *priv;
 };
 
-struct _SensorIntegerProxyClass
+struct _SensorValueProxyClass
 {
   GDBusProxyClass parent_class;
 };
 
-GType sensor_integer_proxy_get_type (void) G_GNUC_CONST;
+GType sensor_value_proxy_get_type (void) G_GNUC_CONST;
 
-void sensor_integer_proxy_new (
+void sensor_value_proxy_new (
     GDBusConnection     *connection,
     GDBusProxyFlags      flags,
     const gchar         *name,
@@ -255,10 +202,10 @@
     GCancellable        *cancellable,
     GAsyncReadyCallback  callback,
     gpointer             user_data);
-SensorInteger *sensor_integer_proxy_new_finish (
+SensorValue *sensor_value_proxy_new_finish (
     GAsyncResult        *res,
     GError             **error);
-SensorInteger *sensor_integer_proxy_new_sync (
+SensorValue *sensor_value_proxy_new_sync (
     GDBusConnection     *connection,
     GDBusProxyFlags      flags,
     const gchar         *name,
@@ -266,7 +213,7 @@
     GCancellable        *cancellable,
     GError             **error);
 
-void sensor_integer_proxy_new_for_bus (
+void sensor_value_proxy_new_for_bus (
     GBusType             bus_type,
     GDBusProxyFlags      flags,
     const gchar         *name,
@@ -274,10 +221,10 @@
     GCancellable        *cancellable,
     GAsyncReadyCallback  callback,
     gpointer             user_data);
-SensorInteger *sensor_integer_proxy_new_for_bus_finish (
+SensorValue *sensor_value_proxy_new_for_bus_finish (
     GAsyncResult        *res,
     GError             **error);
-SensorInteger *sensor_integer_proxy_new_for_bus_sync (
+SensorValue *sensor_value_proxy_new_for_bus_sync (
     GBusType             bus_type,
     GDBusProxyFlags      flags,
     const gchar         *name,
@@ -288,411 +235,173 @@
 
 /* ---- */
 
-#define TYPE_SENSOR_INTEGER_SKELETON (sensor_integer_skeleton_get_type ())
-#define SENSOR_INTEGER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_SENSOR_INTEGER_SKELETON, SensorIntegerSkeleton))
-#define SENSOR_INTEGER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_SENSOR_INTEGER_SKELETON, SensorIntegerSkeletonClass))
-#define SENSOR_INTEGER_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_SENSOR_INTEGER_SKELETON, SensorIntegerSkeletonClass))
-#define IS_SENSOR_INTEGER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_SENSOR_INTEGER_SKELETON))
-#define IS_SENSOR_INTEGER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_SENSOR_INTEGER_SKELETON))
+#define TYPE_SENSOR_VALUE_SKELETON (sensor_value_skeleton_get_type ())
+#define SENSOR_VALUE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_SENSOR_VALUE_SKELETON, SensorValueSkeleton))
+#define SENSOR_VALUE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_SENSOR_VALUE_SKELETON, SensorValueSkeletonClass))
+#define SENSOR_VALUE_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_SENSOR_VALUE_SKELETON, SensorValueSkeletonClass))
+#define IS_SENSOR_VALUE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_SENSOR_VALUE_SKELETON))
+#define IS_SENSOR_VALUE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_SENSOR_VALUE_SKELETON))
 
-typedef struct _SensorIntegerSkeleton SensorIntegerSkeleton;
-typedef struct _SensorIntegerSkeletonClass SensorIntegerSkeletonClass;
-typedef struct _SensorIntegerSkeletonPrivate SensorIntegerSkeletonPrivate;
+typedef struct _SensorValueSkeleton SensorValueSkeleton;
+typedef struct _SensorValueSkeletonClass SensorValueSkeletonClass;
+typedef struct _SensorValueSkeletonPrivate SensorValueSkeletonPrivate;
 
-struct _SensorIntegerSkeleton
+struct _SensorValueSkeleton
 {
   /*< private >*/
   GDBusInterfaceSkeleton parent_instance;
-  SensorIntegerSkeletonPrivate *priv;
+  SensorValueSkeletonPrivate *priv;
 };
 
-struct _SensorIntegerSkeletonClass
+struct _SensorValueSkeletonClass
 {
   GDBusInterfaceSkeletonClass parent_class;
 };
 
-GType sensor_integer_skeleton_get_type (void) G_GNUC_CONST;
+GType sensor_value_skeleton_get_type (void) G_GNUC_CONST;
 
-SensorInteger *sensor_integer_skeleton_new (void);
+SensorValue *sensor_value_skeleton_new (void);
 
 
 /* ------------------------------------------------------------------------ */
-/* Declarations for org.openbmc.SensorString */
+/* Declarations for org.openbmc.SensorThreshold */
 
-#define TYPE_SENSOR_STRING (sensor_string_get_type ())
-#define SENSOR_STRING(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_SENSOR_STRING, SensorString))
-#define IS_SENSOR_STRING(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_SENSOR_STRING))
-#define SENSOR_STRING_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), TYPE_SENSOR_STRING, SensorStringIface))
+#define TYPE_SENSOR_THRESHOLD (sensor_threshold_get_type ())
+#define SENSOR_THRESHOLD(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_SENSOR_THRESHOLD, SensorThreshold))
+#define IS_SENSOR_THRESHOLD(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_SENSOR_THRESHOLD))
+#define SENSOR_THRESHOLD_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), TYPE_SENSOR_THRESHOLD, SensorThresholdIface))
 
-struct _SensorString;
-typedef struct _SensorString SensorString;
-typedef struct _SensorStringIface SensorStringIface;
+struct _SensorThreshold;
+typedef struct _SensorThreshold SensorThreshold;
+typedef struct _SensorThresholdIface SensorThresholdIface;
 
-struct _SensorStringIface
-{
-  GTypeInterface parent_iface;
-
-
-
-  gboolean (*handle_get_units) (
-    SensorString *object,
-    GDBusMethodInvocation *invocation);
-
-  gboolean (*handle_get_value) (
-    SensorString *object,
-    GDBusMethodInvocation *invocation);
-
-  const gchar * (*get_units) (SensorString *object);
-
-  gint  (*get_value) (SensorString *object);
-
-  void (*changed) (
-    SensorString *object,
-    const gchar *arg_value);
-
-};
-
-GType sensor_string_get_type (void) G_GNUC_CONST;
-
-GDBusInterfaceInfo *sensor_string_interface_info (void);
-guint sensor_string_override_properties (GObjectClass *klass, guint property_id_begin);
-
-
-/* D-Bus method call completion functions: */
-void sensor_string_complete_get_value (
-    SensorString *object,
-    GDBusMethodInvocation *invocation,
-    const gchar *value);
-
-void sensor_string_complete_get_units (
-    SensorString *object,
-    GDBusMethodInvocation *invocation,
-    const gchar *units);
-
-
-
-/* D-Bus signal emissions functions: */
-void sensor_string_emit_changed (
-    SensorString *object,
-    const gchar *arg_value);
-
-
-
-/* D-Bus method calls: */
-void sensor_string_call_get_value (
-    SensorString *proxy,
-    GCancellable *cancellable,
-    GAsyncReadyCallback callback,
-    gpointer user_data);
-
-gboolean sensor_string_call_get_value_finish (
-    SensorString *proxy,
-    gchar **out_value,
-    GAsyncResult *res,
-    GError **error);
-
-gboolean sensor_string_call_get_value_sync (
-    SensorString *proxy,
-    gchar **out_value,
-    GCancellable *cancellable,
-    GError **error);
-
-void sensor_string_call_get_units (
-    SensorString *proxy,
-    GCancellable *cancellable,
-    GAsyncReadyCallback callback,
-    gpointer user_data);
-
-gboolean sensor_string_call_get_units_finish (
-    SensorString *proxy,
-    gchar **out_units,
-    GAsyncResult *res,
-    GError **error);
-
-gboolean sensor_string_call_get_units_sync (
-    SensorString *proxy,
-    gchar **out_units,
-    GCancellable *cancellable,
-    GError **error);
-
-
-
-/* D-Bus property accessors: */
-gint sensor_string_get_value (SensorString *object);
-void sensor_string_set_value (SensorString *object, gint value);
-
-const gchar *sensor_string_get_units (SensorString *object);
-gchar *sensor_string_dup_units (SensorString *object);
-void sensor_string_set_units (SensorString *object, const gchar *value);
-
-
-/* ---- */
-
-#define TYPE_SENSOR_STRING_PROXY (sensor_string_proxy_get_type ())
-#define SENSOR_STRING_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_SENSOR_STRING_PROXY, SensorStringProxy))
-#define SENSOR_STRING_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_SENSOR_STRING_PROXY, SensorStringProxyClass))
-#define SENSOR_STRING_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_SENSOR_STRING_PROXY, SensorStringProxyClass))
-#define IS_SENSOR_STRING_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_SENSOR_STRING_PROXY))
-#define IS_SENSOR_STRING_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_SENSOR_STRING_PROXY))
-
-typedef struct _SensorStringProxy SensorStringProxy;
-typedef struct _SensorStringProxyClass SensorStringProxyClass;
-typedef struct _SensorStringProxyPrivate SensorStringProxyPrivate;
-
-struct _SensorStringProxy
-{
-  /*< private >*/
-  GDBusProxy parent_instance;
-  SensorStringProxyPrivate *priv;
-};
-
-struct _SensorStringProxyClass
-{
-  GDBusProxyClass parent_class;
-};
-
-GType sensor_string_proxy_get_type (void) G_GNUC_CONST;
-
-void sensor_string_proxy_new (
-    GDBusConnection     *connection,
-    GDBusProxyFlags      flags,
-    const gchar         *name,
-    const gchar         *object_path,
-    GCancellable        *cancellable,
-    GAsyncReadyCallback  callback,
-    gpointer             user_data);
-SensorString *sensor_string_proxy_new_finish (
-    GAsyncResult        *res,
-    GError             **error);
-SensorString *sensor_string_proxy_new_sync (
-    GDBusConnection     *connection,
-    GDBusProxyFlags      flags,
-    const gchar         *name,
-    const gchar         *object_path,
-    GCancellable        *cancellable,
-    GError             **error);
-
-void sensor_string_proxy_new_for_bus (
-    GBusType             bus_type,
-    GDBusProxyFlags      flags,
-    const gchar         *name,
-    const gchar         *object_path,
-    GCancellable        *cancellable,
-    GAsyncReadyCallback  callback,
-    gpointer             user_data);
-SensorString *sensor_string_proxy_new_for_bus_finish (
-    GAsyncResult        *res,
-    GError             **error);
-SensorString *sensor_string_proxy_new_for_bus_sync (
-    GBusType             bus_type,
-    GDBusProxyFlags      flags,
-    const gchar         *name,
-    const gchar         *object_path,
-    GCancellable        *cancellable,
-    GError             **error);
-
-
-/* ---- */
-
-#define TYPE_SENSOR_STRING_SKELETON (sensor_string_skeleton_get_type ())
-#define SENSOR_STRING_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_SENSOR_STRING_SKELETON, SensorStringSkeleton))
-#define SENSOR_STRING_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_SENSOR_STRING_SKELETON, SensorStringSkeletonClass))
-#define SENSOR_STRING_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_SENSOR_STRING_SKELETON, SensorStringSkeletonClass))
-#define IS_SENSOR_STRING_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_SENSOR_STRING_SKELETON))
-#define IS_SENSOR_STRING_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_SENSOR_STRING_SKELETON))
-
-typedef struct _SensorStringSkeleton SensorStringSkeleton;
-typedef struct _SensorStringSkeletonClass SensorStringSkeletonClass;
-typedef struct _SensorStringSkeletonPrivate SensorStringSkeletonPrivate;
-
-struct _SensorStringSkeleton
-{
-  /*< private >*/
-  GDBusInterfaceSkeleton parent_instance;
-  SensorStringSkeletonPrivate *priv;
-};
-
-struct _SensorStringSkeletonClass
-{
-  GDBusInterfaceSkeletonClass parent_class;
-};
-
-GType sensor_string_skeleton_get_type (void) G_GNUC_CONST;
-
-SensorString *sensor_string_skeleton_new (void);
-
-
-/* ------------------------------------------------------------------------ */
-/* Declarations for org.openbmc.SensorIntegerThreshold */
-
-#define TYPE_SENSOR_INTEGER_THRESHOLD (sensor_integer_threshold_get_type ())
-#define SENSOR_INTEGER_THRESHOLD(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_SENSOR_INTEGER_THRESHOLD, SensorIntegerThreshold))
-#define IS_SENSOR_INTEGER_THRESHOLD(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_SENSOR_INTEGER_THRESHOLD))
-#define SENSOR_INTEGER_THRESHOLD_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), TYPE_SENSOR_INTEGER_THRESHOLD, SensorIntegerThresholdIface))
-
-struct _SensorIntegerThreshold;
-typedef struct _SensorIntegerThreshold SensorIntegerThreshold;
-typedef struct _SensorIntegerThresholdIface SensorIntegerThresholdIface;
-
-struct _SensorIntegerThresholdIface
+struct _SensorThresholdIface
 {
   GTypeInterface parent_iface;
 
 
 
   gboolean (*handle_get_state) (
-    SensorIntegerThreshold *object,
+    SensorThreshold *object,
     GDBusMethodInvocation *invocation);
 
-  gboolean (*handle_set) (
-    SensorIntegerThreshold *object,
-    GDBusMethodInvocation *invocation,
-    gint arg_lower_critical,
-    gint arg_lower_warning,
-    gint arg_upper_warning,
-    gint arg_upper_critical);
+  GVariant * (*get_lower_critical) (SensorThreshold *object);
 
-  gint  (*get_lower_critical) (SensorIntegerThreshold *object);
+  GVariant * (*get_lower_warning) (SensorThreshold *object);
 
-  gint  (*get_lower_warning) (SensorIntegerThreshold *object);
+  guchar  (*get_state) (SensorThreshold *object);
 
-  gint  (*get_state) (SensorIntegerThreshold *object);
+  GVariant * (*get_upper_critical) (SensorThreshold *object);
 
-  gint  (*get_upper_critical) (SensorIntegerThreshold *object);
-
-  gint  (*get_upper_warning) (SensorIntegerThreshold *object);
+  GVariant * (*get_upper_warning) (SensorThreshold *object);
 
   void (*critical) (
-    SensorIntegerThreshold *object);
+    SensorThreshold *object);
 
   void (*normal) (
-    SensorIntegerThreshold *object);
+    SensorThreshold *object);
 
   void (*warning) (
-    SensorIntegerThreshold *object);
+    SensorThreshold *object);
 
 };
 
-GType sensor_integer_threshold_get_type (void) G_GNUC_CONST;
+GType sensor_threshold_get_type (void) G_GNUC_CONST;
 
-GDBusInterfaceInfo *sensor_integer_threshold_interface_info (void);
-guint sensor_integer_threshold_override_properties (GObjectClass *klass, guint property_id_begin);
+GDBusInterfaceInfo *sensor_threshold_interface_info (void);
+guint sensor_threshold_override_properties (GObjectClass *klass, guint property_id_begin);
 
 
 /* D-Bus method call completion functions: */
-void sensor_integer_threshold_complete_set (
-    SensorIntegerThreshold *object,
-    GDBusMethodInvocation *invocation);
-
-void sensor_integer_threshold_complete_get_state (
-    SensorIntegerThreshold *object,
+void sensor_threshold_complete_get_state (
+    SensorThreshold *object,
     GDBusMethodInvocation *invocation,
-    gint state);
+    guchar state);
 
 
 
 /* D-Bus signal emissions functions: */
-void sensor_integer_threshold_emit_warning (
-    SensorIntegerThreshold *object);
+void sensor_threshold_emit_warning (
+    SensorThreshold *object);
 
-void sensor_integer_threshold_emit_critical (
-    SensorIntegerThreshold *object);
+void sensor_threshold_emit_critical (
+    SensorThreshold *object);
 
-void sensor_integer_threshold_emit_normal (
-    SensorIntegerThreshold *object);
+void sensor_threshold_emit_normal (
+    SensorThreshold *object);
 
 
 
 /* D-Bus method calls: */
-void sensor_integer_threshold_call_set (
-    SensorIntegerThreshold *proxy,
-    gint arg_lower_critical,
-    gint arg_lower_warning,
-    gint arg_upper_warning,
-    gint arg_upper_critical,
+void sensor_threshold_call_get_state (
+    SensorThreshold *proxy,
     GCancellable *cancellable,
     GAsyncReadyCallback callback,
     gpointer user_data);
 
-gboolean sensor_integer_threshold_call_set_finish (
-    SensorIntegerThreshold *proxy,
+gboolean sensor_threshold_call_get_state_finish (
+    SensorThreshold *proxy,
+    guchar *out_state,
     GAsyncResult *res,
     GError **error);
 
-gboolean sensor_integer_threshold_call_set_sync (
-    SensorIntegerThreshold *proxy,
-    gint arg_lower_critical,
-    gint arg_lower_warning,
-    gint arg_upper_warning,
-    gint arg_upper_critical,
-    GCancellable *cancellable,
-    GError **error);
-
-void sensor_integer_threshold_call_get_state (
-    SensorIntegerThreshold *proxy,
-    GCancellable *cancellable,
-    GAsyncReadyCallback callback,
-    gpointer user_data);
-
-gboolean sensor_integer_threshold_call_get_state_finish (
-    SensorIntegerThreshold *proxy,
-    gint *out_state,
-    GAsyncResult *res,
-    GError **error);
-
-gboolean sensor_integer_threshold_call_get_state_sync (
-    SensorIntegerThreshold *proxy,
-    gint *out_state,
+gboolean sensor_threshold_call_get_state_sync (
+    SensorThreshold *proxy,
+    guchar *out_state,
     GCancellable *cancellable,
     GError **error);
 
 
 
 /* D-Bus property accessors: */
-gint sensor_integer_threshold_get_lower_critical (SensorIntegerThreshold *object);
-void sensor_integer_threshold_set_lower_critical (SensorIntegerThreshold *object, gint value);
+GVariant *sensor_threshold_get_lower_critical (SensorThreshold *object);
+GVariant *sensor_threshold_dup_lower_critical (SensorThreshold *object);
+void sensor_threshold_set_lower_critical (SensorThreshold *object, GVariant *value);
 
-gint sensor_integer_threshold_get_lower_warning (SensorIntegerThreshold *object);
-void sensor_integer_threshold_set_lower_warning (SensorIntegerThreshold *object, gint value);
+GVariant *sensor_threshold_get_lower_warning (SensorThreshold *object);
+GVariant *sensor_threshold_dup_lower_warning (SensorThreshold *object);
+void sensor_threshold_set_lower_warning (SensorThreshold *object, GVariant *value);
 
-gint sensor_integer_threshold_get_upper_warning (SensorIntegerThreshold *object);
-void sensor_integer_threshold_set_upper_warning (SensorIntegerThreshold *object, gint value);
+GVariant *sensor_threshold_get_upper_warning (SensorThreshold *object);
+GVariant *sensor_threshold_dup_upper_warning (SensorThreshold *object);
+void sensor_threshold_set_upper_warning (SensorThreshold *object, GVariant *value);
 
-gint sensor_integer_threshold_get_upper_critical (SensorIntegerThreshold *object);
-void sensor_integer_threshold_set_upper_critical (SensorIntegerThreshold *object, gint value);
+GVariant *sensor_threshold_get_upper_critical (SensorThreshold *object);
+GVariant *sensor_threshold_dup_upper_critical (SensorThreshold *object);
+void sensor_threshold_set_upper_critical (SensorThreshold *object, GVariant *value);
 
-gint sensor_integer_threshold_get_state (SensorIntegerThreshold *object);
-void sensor_integer_threshold_set_state (SensorIntegerThreshold *object, gint value);
+guchar sensor_threshold_get_state (SensorThreshold *object);
+void sensor_threshold_set_state (SensorThreshold *object, guchar value);
 
 
 /* ---- */
 
-#define TYPE_SENSOR_INTEGER_THRESHOLD_PROXY (sensor_integer_threshold_proxy_get_type ())
-#define SENSOR_INTEGER_THRESHOLD_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_SENSOR_INTEGER_THRESHOLD_PROXY, SensorIntegerThresholdProxy))
-#define SENSOR_INTEGER_THRESHOLD_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_SENSOR_INTEGER_THRESHOLD_PROXY, SensorIntegerThresholdProxyClass))
-#define SENSOR_INTEGER_THRESHOLD_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_SENSOR_INTEGER_THRESHOLD_PROXY, SensorIntegerThresholdProxyClass))
-#define IS_SENSOR_INTEGER_THRESHOLD_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_SENSOR_INTEGER_THRESHOLD_PROXY))
-#define IS_SENSOR_INTEGER_THRESHOLD_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_SENSOR_INTEGER_THRESHOLD_PROXY))
+#define TYPE_SENSOR_THRESHOLD_PROXY (sensor_threshold_proxy_get_type ())
+#define SENSOR_THRESHOLD_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_SENSOR_THRESHOLD_PROXY, SensorThresholdProxy))
+#define SENSOR_THRESHOLD_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_SENSOR_THRESHOLD_PROXY, SensorThresholdProxyClass))
+#define SENSOR_THRESHOLD_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_SENSOR_THRESHOLD_PROXY, SensorThresholdProxyClass))
+#define IS_SENSOR_THRESHOLD_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_SENSOR_THRESHOLD_PROXY))
+#define IS_SENSOR_THRESHOLD_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_SENSOR_THRESHOLD_PROXY))
 
-typedef struct _SensorIntegerThresholdProxy SensorIntegerThresholdProxy;
-typedef struct _SensorIntegerThresholdProxyClass SensorIntegerThresholdProxyClass;
-typedef struct _SensorIntegerThresholdProxyPrivate SensorIntegerThresholdProxyPrivate;
+typedef struct _SensorThresholdProxy SensorThresholdProxy;
+typedef struct _SensorThresholdProxyClass SensorThresholdProxyClass;
+typedef struct _SensorThresholdProxyPrivate SensorThresholdProxyPrivate;
 
-struct _SensorIntegerThresholdProxy
+struct _SensorThresholdProxy
 {
   /*< private >*/
   GDBusProxy parent_instance;
-  SensorIntegerThresholdProxyPrivate *priv;
+  SensorThresholdProxyPrivate *priv;
 };
 
-struct _SensorIntegerThresholdProxyClass
+struct _SensorThresholdProxyClass
 {
   GDBusProxyClass parent_class;
 };
 
-GType sensor_integer_threshold_proxy_get_type (void) G_GNUC_CONST;
+GType sensor_threshold_proxy_get_type (void) G_GNUC_CONST;
 
-void sensor_integer_threshold_proxy_new (
+void sensor_threshold_proxy_new (
     GDBusConnection     *connection,
     GDBusProxyFlags      flags,
     const gchar         *name,
@@ -700,10 +409,10 @@
     GCancellable        *cancellable,
     GAsyncReadyCallback  callback,
     gpointer             user_data);
-SensorIntegerThreshold *sensor_integer_threshold_proxy_new_finish (
+SensorThreshold *sensor_threshold_proxy_new_finish (
     GAsyncResult        *res,
     GError             **error);
-SensorIntegerThreshold *sensor_integer_threshold_proxy_new_sync (
+SensorThreshold *sensor_threshold_proxy_new_sync (
     GDBusConnection     *connection,
     GDBusProxyFlags      flags,
     const gchar         *name,
@@ -711,7 +420,7 @@
     GCancellable        *cancellable,
     GError             **error);
 
-void sensor_integer_threshold_proxy_new_for_bus (
+void sensor_threshold_proxy_new_for_bus (
     GBusType             bus_type,
     GDBusProxyFlags      flags,
     const gchar         *name,
@@ -719,10 +428,10 @@
     GCancellable        *cancellable,
     GAsyncReadyCallback  callback,
     gpointer             user_data);
-SensorIntegerThreshold *sensor_integer_threshold_proxy_new_for_bus_finish (
+SensorThreshold *sensor_threshold_proxy_new_for_bus_finish (
     GAsyncResult        *res,
     GError             **error);
-SensorIntegerThreshold *sensor_integer_threshold_proxy_new_for_bus_sync (
+SensorThreshold *sensor_threshold_proxy_new_for_bus_sync (
     GBusType             bus_type,
     GDBusProxyFlags      flags,
     const gchar         *name,
@@ -733,32 +442,32 @@
 
 /* ---- */
 
-#define TYPE_SENSOR_INTEGER_THRESHOLD_SKELETON (sensor_integer_threshold_skeleton_get_type ())
-#define SENSOR_INTEGER_THRESHOLD_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_SENSOR_INTEGER_THRESHOLD_SKELETON, SensorIntegerThresholdSkeleton))
-#define SENSOR_INTEGER_THRESHOLD_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_SENSOR_INTEGER_THRESHOLD_SKELETON, SensorIntegerThresholdSkeletonClass))
-#define SENSOR_INTEGER_THRESHOLD_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_SENSOR_INTEGER_THRESHOLD_SKELETON, SensorIntegerThresholdSkeletonClass))
-#define IS_SENSOR_INTEGER_THRESHOLD_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_SENSOR_INTEGER_THRESHOLD_SKELETON))
-#define IS_SENSOR_INTEGER_THRESHOLD_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_SENSOR_INTEGER_THRESHOLD_SKELETON))
+#define TYPE_SENSOR_THRESHOLD_SKELETON (sensor_threshold_skeleton_get_type ())
+#define SENSOR_THRESHOLD_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_SENSOR_THRESHOLD_SKELETON, SensorThresholdSkeleton))
+#define SENSOR_THRESHOLD_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_SENSOR_THRESHOLD_SKELETON, SensorThresholdSkeletonClass))
+#define SENSOR_THRESHOLD_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_SENSOR_THRESHOLD_SKELETON, SensorThresholdSkeletonClass))
+#define IS_SENSOR_THRESHOLD_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_SENSOR_THRESHOLD_SKELETON))
+#define IS_SENSOR_THRESHOLD_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_SENSOR_THRESHOLD_SKELETON))
 
-typedef struct _SensorIntegerThresholdSkeleton SensorIntegerThresholdSkeleton;
-typedef struct _SensorIntegerThresholdSkeletonClass SensorIntegerThresholdSkeletonClass;
-typedef struct _SensorIntegerThresholdSkeletonPrivate SensorIntegerThresholdSkeletonPrivate;
+typedef struct _SensorThresholdSkeleton SensorThresholdSkeleton;
+typedef struct _SensorThresholdSkeletonClass SensorThresholdSkeletonClass;
+typedef struct _SensorThresholdSkeletonPrivate SensorThresholdSkeletonPrivate;
 
-struct _SensorIntegerThresholdSkeleton
+struct _SensorThresholdSkeleton
 {
   /*< private >*/
   GDBusInterfaceSkeleton parent_instance;
-  SensorIntegerThresholdSkeletonPrivate *priv;
+  SensorThresholdSkeletonPrivate *priv;
 };
 
-struct _SensorIntegerThresholdSkeletonClass
+struct _SensorThresholdSkeletonClass
 {
   GDBusInterfaceSkeletonClass parent_class;
 };
 
-GType sensor_integer_threshold_skeleton_get_type (void) G_GNUC_CONST;
+GType sensor_threshold_skeleton_get_type (void) G_GNUC_CONST;
 
-SensorIntegerThreshold *sensor_integer_threshold_skeleton_new (void);
+SensorThreshold *sensor_threshold_skeleton_new (void);
 
 
 /* ------------------------------------------------------------------------ */
@@ -913,13 +622,11 @@
 
 GType object_get_type (void) G_GNUC_CONST;
 
-SensorInteger *object_get_sensor_integer (Object *object);
-SensorString *object_get_sensor_string (Object *object);
-SensorIntegerThreshold *object_get_sensor_integer_threshold (Object *object);
+SensorValue *object_get_sensor_value (Object *object);
+SensorThreshold *object_get_sensor_threshold (Object *object);
 SensorI2c *object_get_sensor_i2c (Object *object);
-SensorInteger *object_peek_sensor_integer (Object *object);
-SensorString *object_peek_sensor_string (Object *object);
-SensorIntegerThreshold *object_peek_sensor_integer_threshold (Object *object);
+SensorValue *object_peek_sensor_value (Object *object);
+SensorThreshold *object_peek_sensor_threshold (Object *object);
 SensorI2c *object_peek_sensor_i2c (Object *object);
 
 #define TYPE_OBJECT_PROXY (object_proxy_get_type ())
@@ -973,9 +680,8 @@
 
 GType object_skeleton_get_type (void) G_GNUC_CONST;
 ObjectSkeleton *object_skeleton_new (const gchar *object_path);
-void object_skeleton_set_sensor_integer (ObjectSkeleton *object, SensorInteger *interface_);
-void object_skeleton_set_sensor_string (ObjectSkeleton *object, SensorString *interface_);
-void object_skeleton_set_sensor_integer_threshold (ObjectSkeleton *object, SensorIntegerThreshold *interface_);
+void object_skeleton_set_sensor_value (ObjectSkeleton *object, SensorValue *interface_);
+void object_skeleton_set_sensor_threshold (ObjectSkeleton *object, SensorThreshold *interface_);
 void object_skeleton_set_sensor_i2c (ObjectSkeleton *object, SensorI2c *interface_);
 
 /* ---- */