diff --git a/src/health/inputs/DbusSystemdInput.h b/src/health/inputs/DbusSystemdInput.h
new file mode 100644
index 0000000..c55d0f6
--- /dev/null
+++ b/src/health/inputs/DbusSystemdInput.h
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2020 CESNET, https://photonics.cesnet.cz/
+ *
+ * Written by Tomáš Pecka <tomas.pecka@fit.cvut.cz>
+ *
+*/
+#pragma once
+
+#include <memory>
+#include <sdbus-c++/sdbus-c++.h>
+#include <set>
+#include "health/inputs/AbstractInput.h"
+#include "health/manager/StateManager.h"
+
+namespace velia::health {
+
+/**
+ * Register
+ */
+class DbusSystemdInput : public AbstractInput {
+public:
+    DbusSystemdInput(std::shared_ptr<AbstractManager> manager, const std::set<std::string>& ignoredUnits, sdbus::IConnection& connection);
+    DbusSystemdInput(std::shared_ptr<AbstractManager> manager, const std::set<std::string>& ignoredUnits, sdbus::IConnection& connection, const std::string& busname, const std::string& managerObjectPath, const std::string& managerIface, const std::string& unitIface);
+    ~DbusSystemdInput() override;
+
+private:
+    velia::Log m_log;
+
+    std::string m_busName;
+    std::string m_unitIface;
+    std::unique_ptr<sdbus::IProxy> m_proxyManager;
+
+    /** List of registered unit watchers */
+    std::map<sdbus::ObjectPath, std::unique_ptr<sdbus::IProxy>> m_proxyUnits;
+
+    /** List of units in failed state. */
+    std::set<std::string> m_failedUnits;
+
+    /** Current unit state. */
+    std::map<std::string, std::pair<std::string, std::string>> m_unitState;
+
+    void registerSystemdUnit(sdbus::IConnection& connection, const std::string& unitName, const sdbus::ObjectPath& unitObjectPath);
+    void onUnitStateChange(const std::string& name, const std::string& activeState, const std::string& nSubState);
+};
+
+}
