diff --git a/source/RobotAPI/libraries/core/CMakeLists.txt b/source/RobotAPI/libraries/core/CMakeLists.txt
index 5be7d695eaed6ca2c5227c137987b1dcf1c77736..7756a2cd5be8edad7ee10e8fdcdc25b4501cb008 100644
--- a/source/RobotAPI/libraries/core/CMakeLists.txt
+++ b/source/RobotAPI/libraries/core/CMakeLists.txt
@@ -20,6 +20,8 @@ set(LIBS RobotAPIInterfaces ArmarXCoreObservers ArmarXCoreStatechart ArmarXCoreE
     )
 
 set(LIB_FILES
+    json_conversions.cpp
+
     PIDController.cpp
     Trajectory.cpp
     TrajectoryController.cpp
@@ -62,6 +64,7 @@ set(LIB_FILES
 
 set(LIB_HEADERS
     forward_declarations.h
+    json_conversions.h
 
     PIDController.h
     MultiDimPIDController.h
@@ -113,8 +116,6 @@ set(LIB_HEADERS
 
     #diffik/NaturalDiffIK.h
     #diffik/SimpleDiffIK.h
-
-    json_conversions.h
 )
 add_subdirectory(test)
 
diff --git a/source/RobotAPI/libraries/core/json_conversions.cpp b/source/RobotAPI/libraries/core/json_conversions.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..be883c3db8bb45f624ed5b87e489a73666c28b95
--- /dev/null
+++ b/source/RobotAPI/libraries/core/json_conversions.cpp
@@ -0,0 +1,46 @@
+#include "json_conversions.h"
+
+#include <RobotAPI/libraries/core/FramedPose.h>
+#include <RobotAPI/libraries/core/Names.h>
+
+void
+armarx::to_json(nlohmann::json& j, const FramedPose& fp)
+{
+    j = nlohmann::json{{"agent", fp.agent},
+                       {"frame", fp.frame},
+                       {"qw", fp.orientation->qw},
+                       {"qx", fp.orientation->qx},
+                       {"qy", fp.orientation->qy},
+                       {"qz", fp.orientation->qz},
+                       {"x", fp.position->x},
+                       {"y", fp.position->y},
+                       {"z", fp.position->z}};
+}
+
+void
+armarx::from_json(const nlohmann::json& j, FramedPose& fp)
+{
+    j.at("agent").get_to(fp.agent);
+    j.at("frame").get_to(fp.frame);
+    j.at("qw").get_to(fp.orientation->qw);
+    j.at("qx").get_to(fp.orientation->qx);
+    j.at("qy").get_to(fp.orientation->qy);
+    j.at("qz").get_to(fp.orientation->qz);
+    j.at("x").get_to(fp.position->x);
+    j.at("y").get_to(fp.position->y);
+    j.at("z").get_to(fp.position->z);
+}
+
+void
+armarx::to_json(simox::json::json& j, const Names& value)
+{
+    j["recognized"] = value.recognized;
+    j["spoken"] = value.spoken;
+}
+
+void
+armarx::from_json(const simox::json::json& j, Names& value)
+{
+    j.at("recognized").get_to(value.recognized);
+    j.at("spoken").get_to(value.spoken);
+}
diff --git a/source/RobotAPI/libraries/core/json_conversions.h b/source/RobotAPI/libraries/core/json_conversions.h
index bccd85c6884cb75930932cec64a4480742191b20..0d45d0f05ead70ca1ea58c877b3ec0f65f8293f5 100644
--- a/source/RobotAPI/libraries/core/json_conversions.h
+++ b/source/RobotAPI/libraries/core/json_conversions.h
@@ -20,45 +20,18 @@
  *             GNU General Public License
  */
 
-
 #pragma once
 
-
-// Simox
 #include <SimoxUtility/json.h>
 
-// RobotAPI
-#include <RobotAPI/libraries/core/FramedPose.h>
-
+#include <RobotAPI/libraries/core/forward_declarations.h>
 
 namespace armarx
 {
-    void to_json(nlohmann::json& j, const FramedPose& fp)
-    {
-        j = nlohmann::json
-        {
-            {"agent", fp.agent},
-            {"frame", fp.frame},
-            {"qw", fp.orientation->qw},
-            {"qx", fp.orientation->qx},
-            {"qy", fp.orientation->qy},
-            {"qz", fp.orientation->qz},
-            {"x", fp.position->x},
-            {"y", fp.position->y},
-            {"z", fp.position->z}
-        };
-    }
+    void to_json(nlohmann::json& j, const FramedPose& fp);
+    void from_json(const nlohmann::json& j, FramedPose& fp);
+
+    void to_json(simox::json::json& j, const Names& value);
+    void from_json(const simox::json::json& j, Names& value);
 
-    void from_json(const nlohmann::json& j, FramedPose& fp)
-    {
-        j.at("agent").get_to(fp.agent);
-        j.at("frame").get_to(fp.frame);
-        j.at("qw").get_to(fp.orientation->qw);
-        j.at("qx").get_to(fp.orientation->qx);
-        j.at("qy").get_to(fp.orientation->qy);
-        j.at("qz").get_to(fp.orientation->qz);
-        j.at("x").get_to(fp.position->x);
-        j.at("y").get_to(fp.position->y);
-        j.at("z").get_to(fp.position->z);
-    }
-}
+} // namespace armarx