diff --git a/ipaacalib/cpp/CMakeLists.txt b/ipaacalib/cpp/CMakeLists.txt
index 57551bdcca6d5c047eb73de2df9c3141e9508ff3..63b940c3c70aa3f353f9e1da9c92050d614c1c56 100644
--- a/ipaacalib/cpp/CMakeLists.txt
+++ b/ipaacalib/cpp/CMakeLists.txt
@@ -190,8 +190,8 @@ add_library(ipaaca SHARED ${SOURCE})
 # and link all the required external libs (found above using find_package etc.)
 target_link_libraries(ipaaca ${LIBS})
 
-#add_executable (ipaaca-test-json ${JSON_TEST_SOURCE})
-#target_link_libraries (ipaaca-test-json ${LIBS})
+add_executable (ipaaca-test-json ${JSON_TEST_SOURCE})
+target_link_libraries (ipaaca-test-json ${LIBS})
 
 set(DEFAULT_BIN_SUBDIR bin)
 set(DEFAULT_LIB_SUBDIR lib)
@@ -214,11 +214,11 @@ install(
 	DESTINATION include/ipaaca/
 	)
 
-#install (
-#	TARGETS ipaaca-test-json
-#	RUNTIME DESTINATION bin
-#	LIBRARY DESTINATION lib
-#	ARCHIVE DESTINATION lib
-#	)
+install (
+	TARGETS ipaaca-test-json
+	RUNTIME DESTINATION bin
+	LIBRARY DESTINATION lib
+	ARCHIVE DESTINATION lib
+	)
 
 
diff --git a/ipaacalib/cpp/include/ipaaca/ipaaca-payload.h b/ipaacalib/cpp/include/ipaaca/ipaaca-payload.h
index d32c4f2264f7e2687fa96ff35273f77d9c8cd204..415cc782eea4be472b50188c88d57be4ba2472e2 100644
--- a/ipaacalib/cpp/include/ipaaca/ipaaca-payload.h
+++ b/ipaacalib/cpp/include/ipaaca/ipaaca-payload.h
@@ -34,6 +34,8 @@
 #ifndef __ipaaca_payload_h_INCLUDED__
 #define __ipaaca_payload_h_INCLUDED__
 
+#include <typeinfo>
+
 #ifndef __ipaaca_h_INCLUDED__
 #error "Please do not include this file directly, use ipaaca.h instead"
 #endif
@@ -298,15 +300,19 @@ IPAACA_HEADER_EXPORT class PayloadEntryProxy//{{{
 			return result;
 		}
 		// FIXME why are these needed again?
+		[[deprecated("Use operator std::string() instead (i.e. explicit or implicit cast)")]]
 		IPAACA_HEADER_EXPORT std::string to_str();
 		//long to_int() { return operator long(); ;
+		[[deprecated("Use operator long() instead (i.e. explicit or implicit cast)")]]
 		IPAACA_HEADER_EXPORT long to_long();
+		[[deprecated("Use operator double() instead (i.e. explicit or implicit cast)")]]
 		IPAACA_HEADER_EXPORT double to_float();
+		[[deprecated("Use operator bool() instead (i.e. explicit or implicit cast)")]]
 		IPAACA_HEADER_EXPORT bool to_bool();
-		// getters
-		IPAACA_HEADER_EXPORT template<typename T> T get() { return json_value_cast<T>(json_value); } // specializations below
+		// getters  (not needed since conversions are enough?)
+		//IPAACA_HEADER_EXPORT template<typename T> T get() { return json_value_cast<T>(json_value); }
 		// setters
-		IPAACA_HEADER_EXPORT template<typename T> PayloadEntryProxy& set(T t);
+		//IPAACA_HEADER_EXPORT template<typename T> PayloadEntryProxy& set(T t);
 		/*{
 			pack_into_json_value<T>(t);
 			connect_to_existing_parents();
diff --git a/ipaacalib/cpp/src/ipaaca-buffers.cc b/ipaacalib/cpp/src/ipaaca-buffers.cc
index a485d04eaeda454bfdf1390331305524551744f4..38ac2031973f4e6de34ea8f187f678a23b6b30a2 100644
--- a/ipaacalib/cpp/src/ipaaca-buffers.cc
+++ b/ipaacalib/cpp/src/ipaaca-buffers.cc
@@ -289,8 +289,8 @@ IPAACA_EXPORT OutputBuffer::OutputBuffer(const std::string& basename, const std:
 IPAACA_EXPORT void OutputBuffer::_initialize_server()
 {
 	//IPAACA_INFO("Entering ...")
-	//_server = getFactory().createLocalServer( Scope( _unique_name ) );
-	_server = getFactory().createServer( Scope( _unique_name ) );
+	_server = getFactory().createLocalServer( Scope( _unique_name ) );
+	//_server = getFactory().createServer( Scope( _unique_name ) );
 	//IPAACA_INFO("Registering methods")
 	_server->registerMethod("updatePayload", Server::CallbackPtr(new CallbackIUPayloadUpdate(this)));
 	_server->registerMethod("updateLinks", Server::CallbackPtr(new CallbackIULinkUpdate(this)));
diff --git a/ipaacalib/cpp/src/ipaaca-payload.cc b/ipaacalib/cpp/src/ipaaca-payload.cc
index bea8bfda8728170233b9a316348e4704384e2bce..3f3a190549e87e554c327889a4c6b6053fe0cee1 100644
--- a/ipaacalib/cpp/src/ipaaca-payload.cc
+++ b/ipaacalib/cpp/src/ipaaca-payload.cc
@@ -501,35 +501,43 @@ IPAACA_EXPORT PayloadEntryProxy& PayloadEntryProxy::operator=(bool value)
 
 IPAACA_EXPORT PayloadEntryProxy::operator std::string()
 {
-	return PayloadEntryProxy::get<std::string>();
+	return json_value_cast<std::string>(json_value);
+	//PayloadEntryProxy::get<std::string>();
 }
 IPAACA_EXPORT PayloadEntryProxy::operator long()
 {
-	return PayloadEntryProxy::get<long>();
+	return json_value_cast<long>(json_value);
+	//return PayloadEntryProxy::get<long>();
 }
 IPAACA_EXPORT PayloadEntryProxy::operator double()
 {
-	return PayloadEntryProxy::get<double>();
+	return json_value_cast<double>(json_value);
+	//return PayloadEntryProxy::get<double>();
 }
 IPAACA_EXPORT PayloadEntryProxy::operator bool()
 {
-	return PayloadEntryProxy::get<bool>();
+	return json_value_cast<bool>(json_value);
+	//return PayloadEntryProxy::get<bool>();
 }
 IPAACA_EXPORT std::string PayloadEntryProxy::to_str()
 {
-	return PayloadEntryProxy::get<std::string>(); 
+	return json_value_cast<std::string>(json_value);
+	//return PayloadEntryProxy::get<std::string>(); 
 }
 IPAACA_EXPORT long PayloadEntryProxy::to_long()
 {
-	return PayloadEntryProxy::get<long>();
+	return json_value_cast<long>(json_value);
+	//return PayloadEntryProxy::get<long>();
 }
 IPAACA_EXPORT double PayloadEntryProxy::to_float()
 {
-	return PayloadEntryProxy::get<double>();
+	return json_value_cast<double>(json_value);
+	//return PayloadEntryProxy::get<double>();
 }
 IPAACA_EXPORT bool PayloadEntryProxy::to_bool()
 {
-	return PayloadEntryProxy::get<bool>();
+	return json_value_cast<bool>(json_value);
+	//return PayloadEntryProxy::get<bool>();
 }