diff --git a/ModeliRpc.proto b/ModeliRpc.proto
index 9abe80c29169a522489541c20b5e3e3b2ce7882c..4e291feb4d6e8137766668a3338126b313049a98 100644
--- a/ModeliRpc.proto
+++ b/ModeliRpc.proto
@@ -6,26 +6,33 @@ package ModeliRpc;
 // Service must be offered by a ModeliChart Backend
 // Default Port ist 52062
 service ModeliBackend {
-    // Simulation state control
+    // Play the simulation infinetly in realtime
     rpc Play (PlayRequest) returns (PlayResponse);
+    // Play the simulation as fast as possible (fast forwad)
     rpc PlayFast (PlayFastRequest) returns (PlayFastResponse);
+    // Pause the simulation without resetting it
     rpc Pause (PauseRequest) returns (PauseResponse);
+    // Halt and reset the simulation
     rpc Stop (StopRequest) returns (StopResponse);
     
-    // Fmu management
-    // Transfer FMU via stream and use chunking
+    // Add a new Fmu to the simulation, transfer it via chunks
     rpc AddFmu (stream AddFmuRequest) returns (AddFmuResponse);
+    // Remove a Fmu from the simulation
     rpc RemoveFmu (RemoveFmuRequest) returns (RemoveFmuResponse);
     
-    // ChannelLink management
+    // Add a ChannelLink to the simulation
     rpc AddChannelLink (AddChannelLinkRequest) returns (AddChannelLinkResponse);
+    // Remove a ChannelLink from the simulation
     rpc RemoveChannelLink (RemoveChannelLinkRequest) returns (RemoveChannelLinkResponse);
     
-    // Transfer settable channel values
+    // Set int values in one of the fmus
     rpc SetInt (SetIntRequest) returns (SetIntResponse);
+    // Set real values in one of the fmus
     rpc SetReal (SetRealRequest) returns (SetRealResponse);
+    // Set bool values in one of the fmus
     rpc SetBool (SetBoolRequest) returns (SetBoolResponse);
-    rpc SetString (SetStringRequest) returns (SetStringResponse);
+    // Set string values in one of the fmus   
+   rpc SetString (SetStringRequest) returns (SetStringResponse);
     
     // Stream simulation results to the client
     rpc NewValues (NewValuesRequest) returns (stream NewValuesResponse);
@@ -45,21 +52,21 @@ enum Fmi2Status {
 
 // Contains values from and for the fmu
 message IntValues {   
-    repeated uint32 valueRefs = 1;
+    repeated uint32 value_refs = 1;
     repeated int32 values = 2;
 }
 
 message RealValues {
-    repeated uint32 valueRefs = 1;
+    repeated uint32 value_refs = 1;
     repeated double values = 2;
 }
 
 message BoolValues {
-    repeated uint32 valueRefs = 1;
+    repeated uint32 value_refs = 1;
     repeated int32 values = 2;  // Fmi2 standard encodes bools as int (1: true, 0: false)
 }
 message StringValues {
-    repeated uint32 valueRefs = 1;
+    repeated uint32 value_refs = 1;
     repeated string values = 2;
 }
 
@@ -100,7 +107,7 @@ message StopResponse {
 
 message AddFmuRequest {
     string instance_name = 1;
-    bytes data = 2;
+    bytes chunk = 2;
 }
 
 message AddFmuResponse {
diff --git a/ModeliRpc_Cpp/ModeliRpc.grpc.pb.h b/ModeliRpc_Cpp/ModeliRpc.grpc.pb.h
index d45f8a21ca1eaa91235454113909ff06dc0c527b..7d2c180f0d99c708b62c31211bc6a4f96cf8f143 100644
--- a/ModeliRpc_Cpp/ModeliRpc.grpc.pb.h
+++ b/ModeliRpc_Cpp/ModeliRpc.grpc.pb.h
@@ -37,7 +37,7 @@ class ModeliBackend final {
   class StubInterface {
    public:
     virtual ~StubInterface() {}
-    // Simulation state control
+    // Play the simulation infinetly in realtime
     virtual ::grpc::Status Play(::grpc::ClientContext* context, const ::ModeliRpc::PlayRequest& request, ::ModeliRpc::PlayResponse* response) = 0;
     std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::PlayResponse>> AsyncPlay(::grpc::ClientContext* context, const ::ModeliRpc::PlayRequest& request, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::PlayResponse>>(AsyncPlayRaw(context, request, cq));
@@ -45,6 +45,7 @@ class ModeliBackend final {
     std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::PlayResponse>> PrepareAsyncPlay(::grpc::ClientContext* context, const ::ModeliRpc::PlayRequest& request, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::PlayResponse>>(PrepareAsyncPlayRaw(context, request, cq));
     }
+    // Play the simulation as fast as possible (fast forwad)
     virtual ::grpc::Status PlayFast(::grpc::ClientContext* context, const ::ModeliRpc::PlayFastRequest& request, ::ModeliRpc::PlayFastResponse* response) = 0;
     std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::PlayFastResponse>> AsyncPlayFast(::grpc::ClientContext* context, const ::ModeliRpc::PlayFastRequest& request, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::PlayFastResponse>>(AsyncPlayFastRaw(context, request, cq));
@@ -52,6 +53,7 @@ class ModeliBackend final {
     std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::PlayFastResponse>> PrepareAsyncPlayFast(::grpc::ClientContext* context, const ::ModeliRpc::PlayFastRequest& request, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::PlayFastResponse>>(PrepareAsyncPlayFastRaw(context, request, cq));
     }
+    // Pause the simulation without resetting it
     virtual ::grpc::Status Pause(::grpc::ClientContext* context, const ::ModeliRpc::PauseRequest& request, ::ModeliRpc::PauseResponse* response) = 0;
     std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::PauseResponse>> AsyncPause(::grpc::ClientContext* context, const ::ModeliRpc::PauseRequest& request, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::PauseResponse>>(AsyncPauseRaw(context, request, cq));
@@ -59,6 +61,7 @@ class ModeliBackend final {
     std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::PauseResponse>> PrepareAsyncPause(::grpc::ClientContext* context, const ::ModeliRpc::PauseRequest& request, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::PauseResponse>>(PrepareAsyncPauseRaw(context, request, cq));
     }
+    // Halt and reset the simulation
     virtual ::grpc::Status Stop(::grpc::ClientContext* context, const ::ModeliRpc::StopRequest& request, ::ModeliRpc::StopResponse* response) = 0;
     std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::StopResponse>> AsyncStop(::grpc::ClientContext* context, const ::ModeliRpc::StopRequest& request, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::StopResponse>>(AsyncStopRaw(context, request, cq));
@@ -66,8 +69,7 @@ class ModeliBackend final {
     std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::StopResponse>> PrepareAsyncStop(::grpc::ClientContext* context, const ::ModeliRpc::StopRequest& request, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::StopResponse>>(PrepareAsyncStopRaw(context, request, cq));
     }
-    // Fmu management
-    // Transfer FMU via stream and use chunking
+    // Add a new Fmu to the simulation, transfer it via chunks
     std::unique_ptr< ::grpc::ClientWriterInterface< ::ModeliRpc::AddFmuRequest>> AddFmu(::grpc::ClientContext* context, ::ModeliRpc::AddFmuResponse* response) {
       return std::unique_ptr< ::grpc::ClientWriterInterface< ::ModeliRpc::AddFmuRequest>>(AddFmuRaw(context, response));
     }
@@ -77,6 +79,7 @@ class ModeliBackend final {
     std::unique_ptr< ::grpc::ClientAsyncWriterInterface< ::ModeliRpc::AddFmuRequest>> PrepareAsyncAddFmu(::grpc::ClientContext* context, ::ModeliRpc::AddFmuResponse* response, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncWriterInterface< ::ModeliRpc::AddFmuRequest>>(PrepareAsyncAddFmuRaw(context, response, cq));
     }
+    // Remove a Fmu from the simulation
     virtual ::grpc::Status RemoveFmu(::grpc::ClientContext* context, const ::ModeliRpc::RemoveFmuRequest& request, ::ModeliRpc::RemoveFmuResponse* response) = 0;
     std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::RemoveFmuResponse>> AsyncRemoveFmu(::grpc::ClientContext* context, const ::ModeliRpc::RemoveFmuRequest& request, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::RemoveFmuResponse>>(AsyncRemoveFmuRaw(context, request, cq));
@@ -84,7 +87,7 @@ class ModeliBackend final {
     std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::RemoveFmuResponse>> PrepareAsyncRemoveFmu(::grpc::ClientContext* context, const ::ModeliRpc::RemoveFmuRequest& request, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::RemoveFmuResponse>>(PrepareAsyncRemoveFmuRaw(context, request, cq));
     }
-    // ChannelLink management
+    // Add a ChannelLink to the simulation
     virtual ::grpc::Status AddChannelLink(::grpc::ClientContext* context, const ::ModeliRpc::AddChannelLinkRequest& request, ::ModeliRpc::AddChannelLinkResponse* response) = 0;
     std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::AddChannelLinkResponse>> AsyncAddChannelLink(::grpc::ClientContext* context, const ::ModeliRpc::AddChannelLinkRequest& request, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::AddChannelLinkResponse>>(AsyncAddChannelLinkRaw(context, request, cq));
@@ -92,6 +95,7 @@ class ModeliBackend final {
     std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::AddChannelLinkResponse>> PrepareAsyncAddChannelLink(::grpc::ClientContext* context, const ::ModeliRpc::AddChannelLinkRequest& request, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::AddChannelLinkResponse>>(PrepareAsyncAddChannelLinkRaw(context, request, cq));
     }
+    // Remove a ChannelLink from the simulation
     virtual ::grpc::Status RemoveChannelLink(::grpc::ClientContext* context, const ::ModeliRpc::RemoveChannelLinkRequest& request, ::ModeliRpc::RemoveChannelLinkResponse* response) = 0;
     std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::RemoveChannelLinkResponse>> AsyncRemoveChannelLink(::grpc::ClientContext* context, const ::ModeliRpc::RemoveChannelLinkRequest& request, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::RemoveChannelLinkResponse>>(AsyncRemoveChannelLinkRaw(context, request, cq));
@@ -99,7 +103,7 @@ class ModeliBackend final {
     std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::RemoveChannelLinkResponse>> PrepareAsyncRemoveChannelLink(::grpc::ClientContext* context, const ::ModeliRpc::RemoveChannelLinkRequest& request, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::RemoveChannelLinkResponse>>(PrepareAsyncRemoveChannelLinkRaw(context, request, cq));
     }
-    // Transfer settable channel values
+    // Set int values in one of the fmus
     virtual ::grpc::Status SetInt(::grpc::ClientContext* context, const ::ModeliRpc::SetIntRequest& request, ::ModeliRpc::SetIntResponse* response) = 0;
     std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::SetIntResponse>> AsyncSetInt(::grpc::ClientContext* context, const ::ModeliRpc::SetIntRequest& request, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::SetIntResponse>>(AsyncSetIntRaw(context, request, cq));
@@ -107,6 +111,7 @@ class ModeliBackend final {
     std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::SetIntResponse>> PrepareAsyncSetInt(::grpc::ClientContext* context, const ::ModeliRpc::SetIntRequest& request, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::SetIntResponse>>(PrepareAsyncSetIntRaw(context, request, cq));
     }
+    // Set real values in one of the fmus
     virtual ::grpc::Status SetReal(::grpc::ClientContext* context, const ::ModeliRpc::SetRealRequest& request, ::ModeliRpc::SetRealResponse* response) = 0;
     std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::SetRealResponse>> AsyncSetReal(::grpc::ClientContext* context, const ::ModeliRpc::SetRealRequest& request, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::SetRealResponse>>(AsyncSetRealRaw(context, request, cq));
@@ -114,6 +119,7 @@ class ModeliBackend final {
     std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::SetRealResponse>> PrepareAsyncSetReal(::grpc::ClientContext* context, const ::ModeliRpc::SetRealRequest& request, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::SetRealResponse>>(PrepareAsyncSetRealRaw(context, request, cq));
     }
+    // Set bool values in one of the fmus
     virtual ::grpc::Status SetBool(::grpc::ClientContext* context, const ::ModeliRpc::SetBoolRequest& request, ::ModeliRpc::SetBoolResponse* response) = 0;
     std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::SetBoolResponse>> AsyncSetBool(::grpc::ClientContext* context, const ::ModeliRpc::SetBoolRequest& request, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::SetBoolResponse>>(AsyncSetBoolRaw(context, request, cq));
@@ -121,6 +127,7 @@ class ModeliBackend final {
     std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::SetBoolResponse>> PrepareAsyncSetBool(::grpc::ClientContext* context, const ::ModeliRpc::SetBoolRequest& request, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::SetBoolResponse>>(PrepareAsyncSetBoolRaw(context, request, cq));
     }
+    // Set string values in one of the fmus   
     virtual ::grpc::Status SetString(::grpc::ClientContext* context, const ::ModeliRpc::SetStringRequest& request, ::ModeliRpc::SetStringResponse* response) = 0;
     std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::SetStringResponse>> AsyncSetString(::grpc::ClientContext* context, const ::ModeliRpc::SetStringRequest& request, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::ModeliRpc::SetStringResponse>>(AsyncSetStringRaw(context, request, cq));
@@ -343,22 +350,29 @@ class ModeliBackend final {
    public:
     Service();
     virtual ~Service();
-    // Simulation state control
+    // Play the simulation infinetly in realtime
     virtual ::grpc::Status Play(::grpc::ServerContext* context, const ::ModeliRpc::PlayRequest* request, ::ModeliRpc::PlayResponse* response);
+    // Play the simulation as fast as possible (fast forwad)
     virtual ::grpc::Status PlayFast(::grpc::ServerContext* context, const ::ModeliRpc::PlayFastRequest* request, ::ModeliRpc::PlayFastResponse* response);
+    // Pause the simulation without resetting it
     virtual ::grpc::Status Pause(::grpc::ServerContext* context, const ::ModeliRpc::PauseRequest* request, ::ModeliRpc::PauseResponse* response);
+    // Halt and reset the simulation
     virtual ::grpc::Status Stop(::grpc::ServerContext* context, const ::ModeliRpc::StopRequest* request, ::ModeliRpc::StopResponse* response);
-    // Fmu management
-    // Transfer FMU via stream and use chunking
+    // Add a new Fmu to the simulation, transfer it via chunks
     virtual ::grpc::Status AddFmu(::grpc::ServerContext* context, ::grpc::ServerReader< ::ModeliRpc::AddFmuRequest>* reader, ::ModeliRpc::AddFmuResponse* response);
+    // Remove a Fmu from the simulation
     virtual ::grpc::Status RemoveFmu(::grpc::ServerContext* context, const ::ModeliRpc::RemoveFmuRequest* request, ::ModeliRpc::RemoveFmuResponse* response);
-    // ChannelLink management
+    // Add a ChannelLink to the simulation
     virtual ::grpc::Status AddChannelLink(::grpc::ServerContext* context, const ::ModeliRpc::AddChannelLinkRequest* request, ::ModeliRpc::AddChannelLinkResponse* response);
+    // Remove a ChannelLink from the simulation
     virtual ::grpc::Status RemoveChannelLink(::grpc::ServerContext* context, const ::ModeliRpc::RemoveChannelLinkRequest* request, ::ModeliRpc::RemoveChannelLinkResponse* response);
-    // Transfer settable channel values
+    // Set int values in one of the fmus
     virtual ::grpc::Status SetInt(::grpc::ServerContext* context, const ::ModeliRpc::SetIntRequest* request, ::ModeliRpc::SetIntResponse* response);
+    // Set real values in one of the fmus
     virtual ::grpc::Status SetReal(::grpc::ServerContext* context, const ::ModeliRpc::SetRealRequest* request, ::ModeliRpc::SetRealResponse* response);
+    // Set bool values in one of the fmus
     virtual ::grpc::Status SetBool(::grpc::ServerContext* context, const ::ModeliRpc::SetBoolRequest* request, ::ModeliRpc::SetBoolResponse* response);
+    // Set string values in one of the fmus   
     virtual ::grpc::Status SetString(::grpc::ServerContext* context, const ::ModeliRpc::SetStringRequest* request, ::ModeliRpc::SetStringResponse* response);
     // Stream simulation results to the client
     virtual ::grpc::Status NewValues(::grpc::ServerContext* context, const ::ModeliRpc::NewValuesRequest* request, ::grpc::ServerWriter< ::ModeliRpc::NewValuesResponse>* writer);
diff --git a/ModeliRpc_Cpp/ModeliRpc.pb.cc b/ModeliRpc_Cpp/ModeliRpc.pb.cc
index ba01c0f2807996271998e576afd526afb62be74a..538bb79e4cfbe19a3390099c3c68f2e057b32bd1 100644
--- a/ModeliRpc_Cpp/ModeliRpc.pb.cc
+++ b/ModeliRpc_Cpp/ModeliRpc.pb.cc
@@ -899,28 +899,28 @@ const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_PROTOBUF_ATTRIBUT
   ~0u,  // no _extensions_
   ~0u,  // no _oneof_case_
   ~0u,  // no _weak_field_map_
-  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::IntValues, valuerefs_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::IntValues, value_refs_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::IntValues, values_),
   ~0u,  // no _has_bits_
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::RealValues, _internal_metadata_),
   ~0u,  // no _extensions_
   ~0u,  // no _oneof_case_
   ~0u,  // no _weak_field_map_
-  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::RealValues, valuerefs_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::RealValues, value_refs_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::RealValues, values_),
   ~0u,  // no _has_bits_
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::BoolValues, _internal_metadata_),
   ~0u,  // no _extensions_
   ~0u,  // no _oneof_case_
   ~0u,  // no _weak_field_map_
-  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::BoolValues, valuerefs_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::BoolValues, value_refs_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::BoolValues, values_),
   ~0u,  // no _has_bits_
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::StringValues, _internal_metadata_),
   ~0u,  // no _extensions_
   ~0u,  // no _oneof_case_
   ~0u,  // no _weak_field_map_
-  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::StringValues, valuerefs_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::StringValues, value_refs_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::StringValues, values_),
   ~0u,  // no _has_bits_
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::ChannelLink, _internal_metadata_),
@@ -983,7 +983,7 @@ const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_PROTOBUF_ATTRIBUT
   ~0u,  // no _oneof_case_
   ~0u,  // no _weak_field_map_
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::AddFmuRequest, instance_name_),
-  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::AddFmuRequest, data_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::AddFmuRequest, chunk_),
   ~0u,  // no _has_bits_
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::AddFmuResponse, _internal_metadata_),
   ~0u,  // no _extensions_
@@ -1201,85 +1201,85 @@ void protobuf_RegisterTypes(const ::std::string&) {
 void AddDescriptorsImpl() {
   InitDefaults();
   static const char descriptor[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
-      "\n\017ModeliRpc.proto\022\tModeliRpc\".\n\tIntValue"
-      "s\022\021\n\tvalueRefs\030\001 \003(\r\022\016\n\006values\030\002 \003(\005\"/\n\n"
-      "RealValues\022\021\n\tvalueRefs\030\001 \003(\r\022\016\n\006values\030"
-      "\002 \003(\001\"/\n\nBoolValues\022\021\n\tvalueRefs\030\001 \003(\r\022\016"
-      "\n\006values\030\002 \003(\005\"1\n\014StringValues\022\021\n\tvalueR"
-      "efs\030\001 \003(\r\022\016\n\006values\030\002 \003(\t\"\215\001\n\013ChannelLin"
-      "k\022\034\n\024master_instance_name\030\001 \001(\t\022\033\n\023slave"
-      "_instance_name\030\002 \001(\t\022\021\n\tmaster_vr\030\003 \001(\r\022"
-      "\020\n\010slave_vr\030\004 \001(\r\022\016\n\006factor\030\005 \001(\001\022\016\n\006off"
-      "set\030\006 \001(\001\"\r\n\013PlayRequest\"5\n\014PlayResponse"
-      "\022%\n\006status\030\001 \001(\0162\025.ModeliRpc.Fmi2Status\""
-      "\037\n\017PlayFastRequest\022\014\n\004time\030\001 \001(\001\"9\n\020Play"
-      "FastResponse\022%\n\006status\030\001 \001(\0162\025.ModeliRpc"
-      ".Fmi2Status\"\016\n\014PauseRequest\"\017\n\rPauseResp"
-      "onse\"\r\n\013StopRequest\"5\n\014StopResponse\022%\n\006s"
-      "tatus\030\001 \001(\0162\025.ModeliRpc.Fmi2Status\"4\n\rAd"
-      "dFmuRequest\022\025\n\rinstance_name\030\001 \001(\t\022\014\n\004da"
-      "ta\030\002 \001(\014\"!\n\016AddFmuResponse\022\017\n\007success\030\001 "
-      "\001(\010\")\n\020RemoveFmuRequest\022\025\n\rinstance_name"
-      "\030\001 \001(\t\"$\n\021RemoveFmuResponse\022\017\n\007success\030\001"
-      " \001(\010\"E\n\025AddChannelLinkRequest\022,\n\014channel"
-      "_link\030\001 \001(\0132\026.ModeliRpc.ChannelLink\")\n\026A"
-      "ddChannelLinkResponse\022\017\n\007success\030\001 \001(\010\"H"
-      "\n\030RemoveChannelLinkRequest\022,\n\014channel_li"
-      "nk\030\001 \001(\0132\026.ModeliRpc.ChannelLink\",\n\031Remo"
-      "veChannelLinkResponse\022\017\n\007success\030\001 \001(\010\"L"
-      "\n\rSetIntRequest\022\025\n\rinstance_name\030\001 \001(\t\022$"
-      "\n\006values\030\002 \001(\0132\024.ModeliRpc.IntValues\"7\n\016"
-      "SetIntResponse\022%\n\006status\030\001 \001(\0162\025.ModeliR"
-      "pc.Fmi2Status\"N\n\016SetRealRequest\022\025\n\rinsta"
-      "nce_name\030\001 \001(\t\022%\n\006values\030\002 \001(\0132\025.ModeliR"
-      "pc.RealValues\"8\n\017SetRealResponse\022%\n\006stat"
-      "us\030\001 \001(\0162\025.ModeliRpc.Fmi2Status\"N\n\016SetBo"
-      "olRequest\022\025\n\rinstance_name\030\001 \001(\t\022%\n\006valu"
-      "es\030\002 \001(\0132\025.ModeliRpc.BoolValues\"8\n\017SetBo"
-      "olResponse\022%\n\006status\030\001 \001(\0162\025.ModeliRpc.F"
-      "mi2Status\"R\n\020SetStringRequest\022\025\n\rinstanc"
-      "e_name\030\001 \001(\t\022\'\n\006values\030\002 \001(\0132\027.ModeliRpc"
-      ".StringValues\":\n\021SetStringResponse\022%\n\006st"
-      "atus\030\001 \001(\0162\025.ModeliRpc.Fmi2Status\"\022\n\020New"
-      "ValuesRequest\"\324\001\n\021NewValuesResponse\022\021\n\tt"
-      "imestamp\030\001 \001(\001\022\'\n\tintValues\030\002 \001(\0132\024.Mode"
-      "liRpc.IntValues\022)\n\nrealValues\030\003 \001(\0132\025.Mo"
-      "deliRpc.RealValues\022)\n\nboolValues\030\004 \001(\0132\025"
-      ".ModeliRpc.BoolValues\022-\n\014stringValues\030\005 "
-      "\001(\0132\027.ModeliRpc.StringValues\"\014\n\nLogReque"
-      "st\"\\\n\013LogResponse\022\025\n\rinstance_name\030\001 \001(\t"
-      "\022%\n\006status\030\002 \001(\0162\025.ModeliRpc.Fmi2Status\022"
-      "\017\n\007message\030\003 \001(\t*o\n\nFmi2Status\022\013\n\007FMI2_O"
-      "K\020\000\022\020\n\014FMI2_WARNING\020\001\022\020\n\014FMI2_DISCARD\020\002\022"
-      "\016\n\nFMI2_ERROR\020\003\022\016\n\nFMI2_FATAL\020\004\022\020\n\014FMI2_"
-      "PENDING\020\0052\317\007\n\rModeliBackend\0227\n\004Play\022\026.Mo"
-      "deliRpc.PlayRequest\032\027.ModeliRpc.PlayResp"
-      "onse\022C\n\010PlayFast\022\032.ModeliRpc.PlayFastReq"
-      "uest\032\033.ModeliRpc.PlayFastResponse\022:\n\005Pau"
-      "se\022\027.ModeliRpc.PauseRequest\032\030.ModeliRpc."
-      "PauseResponse\0227\n\004Stop\022\026.ModeliRpc.StopRe"
-      "quest\032\027.ModeliRpc.StopResponse\022\?\n\006AddFmu"
-      "\022\030.ModeliRpc.AddFmuRequest\032\031.ModeliRpc.A"
-      "ddFmuResponse(\001\022F\n\tRemoveFmu\022\033.ModeliRpc"
-      ".RemoveFmuRequest\032\034.ModeliRpc.RemoveFmuR"
-      "esponse\022U\n\016AddChannelLink\022 .ModeliRpc.Ad"
-      "dChannelLinkRequest\032!.ModeliRpc.AddChann"
-      "elLinkResponse\022^\n\021RemoveChannelLink\022#.Mo"
-      "deliRpc.RemoveChannelLinkRequest\032$.Model"
-      "iRpc.RemoveChannelLinkResponse\022=\n\006SetInt"
-      "\022\030.ModeliRpc.SetIntRequest\032\031.ModeliRpc.S"
-      "etIntResponse\022@\n\007SetReal\022\031.ModeliRpc.Set"
-      "RealRequest\032\032.ModeliRpc.SetRealResponse\022"
-      "@\n\007SetBool\022\031.ModeliRpc.SetBoolRequest\032\032."
-      "ModeliRpc.SetBoolResponse\022F\n\tSetString\022\033"
-      ".ModeliRpc.SetStringRequest\032\034.ModeliRpc."
-      "SetStringResponse\022H\n\tNewValues\022\033.ModeliR"
-      "pc.NewValuesRequest\032\034.ModeliRpc.NewValue"
-      "sResponse0\001\0226\n\003Log\022\025.ModeliRpc.LogReques"
-      "t\032\026.ModeliRpc.LogResponse0\001b\006proto3"
+      "\n\017ModeliRpc.proto\022\tModeliRpc\"/\n\tIntValue"
+      "s\022\022\n\nvalue_refs\030\001 \003(\r\022\016\n\006values\030\002 \003(\005\"0\n"
+      "\nRealValues\022\022\n\nvalue_refs\030\001 \003(\r\022\016\n\006value"
+      "s\030\002 \003(\001\"0\n\nBoolValues\022\022\n\nvalue_refs\030\001 \003("
+      "\r\022\016\n\006values\030\002 \003(\005\"2\n\014StringValues\022\022\n\nval"
+      "ue_refs\030\001 \003(\r\022\016\n\006values\030\002 \003(\t\"\215\001\n\013Channe"
+      "lLink\022\034\n\024master_instance_name\030\001 \001(\t\022\033\n\023s"
+      "lave_instance_name\030\002 \001(\t\022\021\n\tmaster_vr\030\003 "
+      "\001(\r\022\020\n\010slave_vr\030\004 \001(\r\022\016\n\006factor\030\005 \001(\001\022\016\n"
+      "\006offset\030\006 \001(\001\"\r\n\013PlayRequest\"5\n\014PlayResp"
+      "onse\022%\n\006status\030\001 \001(\0162\025.ModeliRpc.Fmi2Sta"
+      "tus\"\037\n\017PlayFastRequest\022\014\n\004time\030\001 \001(\001\"9\n\020"
+      "PlayFastResponse\022%\n\006status\030\001 \001(\0162\025.Model"
+      "iRpc.Fmi2Status\"\016\n\014PauseRequest\"\017\n\rPause"
+      "Response\"\r\n\013StopRequest\"5\n\014StopResponse\022"
+      "%\n\006status\030\001 \001(\0162\025.ModeliRpc.Fmi2Status\"5"
+      "\n\rAddFmuRequest\022\025\n\rinstance_name\030\001 \001(\t\022\r"
+      "\n\005chunk\030\002 \001(\014\"!\n\016AddFmuResponse\022\017\n\007succe"
+      "ss\030\001 \001(\010\")\n\020RemoveFmuRequest\022\025\n\rinstance"
+      "_name\030\001 \001(\t\"$\n\021RemoveFmuResponse\022\017\n\007succ"
+      "ess\030\001 \001(\010\"E\n\025AddChannelLinkRequest\022,\n\014ch"
+      "annel_link\030\001 \001(\0132\026.ModeliRpc.ChannelLink"
+      "\")\n\026AddChannelLinkResponse\022\017\n\007success\030\001 "
+      "\001(\010\"H\n\030RemoveChannelLinkRequest\022,\n\014chann"
+      "el_link\030\001 \001(\0132\026.ModeliRpc.ChannelLink\",\n"
+      "\031RemoveChannelLinkResponse\022\017\n\007success\030\001 "
+      "\001(\010\"L\n\rSetIntRequest\022\025\n\rinstance_name\030\001 "
+      "\001(\t\022$\n\006values\030\002 \001(\0132\024.ModeliRpc.IntValue"
+      "s\"7\n\016SetIntResponse\022%\n\006status\030\001 \001(\0162\025.Mo"
+      "deliRpc.Fmi2Status\"N\n\016SetRealRequest\022\025\n\r"
+      "instance_name\030\001 \001(\t\022%\n\006values\030\002 \001(\0132\025.Mo"
+      "deliRpc.RealValues\"8\n\017SetRealResponse\022%\n"
+      "\006status\030\001 \001(\0162\025.ModeliRpc.Fmi2Status\"N\n\016"
+      "SetBoolRequest\022\025\n\rinstance_name\030\001 \001(\t\022%\n"
+      "\006values\030\002 \001(\0132\025.ModeliRpc.BoolValues\"8\n\017"
+      "SetBoolResponse\022%\n\006status\030\001 \001(\0162\025.Modeli"
+      "Rpc.Fmi2Status\"R\n\020SetStringRequest\022\025\n\rin"
+      "stance_name\030\001 \001(\t\022\'\n\006values\030\002 \001(\0132\027.Mode"
+      "liRpc.StringValues\":\n\021SetStringResponse\022"
+      "%\n\006status\030\001 \001(\0162\025.ModeliRpc.Fmi2Status\"\022"
+      "\n\020NewValuesRequest\"\324\001\n\021NewValuesResponse"
+      "\022\021\n\ttimestamp\030\001 \001(\001\022\'\n\tintValues\030\002 \001(\0132\024"
+      ".ModeliRpc.IntValues\022)\n\nrealValues\030\003 \001(\013"
+      "2\025.ModeliRpc.RealValues\022)\n\nboolValues\030\004 "
+      "\001(\0132\025.ModeliRpc.BoolValues\022-\n\014stringValu"
+      "es\030\005 \001(\0132\027.ModeliRpc.StringValues\"\014\n\nLog"
+      "Request\"\\\n\013LogResponse\022\025\n\rinstance_name\030"
+      "\001 \001(\t\022%\n\006status\030\002 \001(\0162\025.ModeliRpc.Fmi2St"
+      "atus\022\017\n\007message\030\003 \001(\t*o\n\nFmi2Status\022\013\n\007F"
+      "MI2_OK\020\000\022\020\n\014FMI2_WARNING\020\001\022\020\n\014FMI2_DISCA"
+      "RD\020\002\022\016\n\nFMI2_ERROR\020\003\022\016\n\nFMI2_FATAL\020\004\022\020\n\014"
+      "FMI2_PENDING\020\0052\317\007\n\rModeliBackend\0227\n\004Play"
+      "\022\026.ModeliRpc.PlayRequest\032\027.ModeliRpc.Pla"
+      "yResponse\022C\n\010PlayFast\022\032.ModeliRpc.PlayFa"
+      "stRequest\032\033.ModeliRpc.PlayFastResponse\022:"
+      "\n\005Pause\022\027.ModeliRpc.PauseRequest\032\030.Model"
+      "iRpc.PauseResponse\0227\n\004Stop\022\026.ModeliRpc.S"
+      "topRequest\032\027.ModeliRpc.StopResponse\022\?\n\006A"
+      "ddFmu\022\030.ModeliRpc.AddFmuRequest\032\031.Modeli"
+      "Rpc.AddFmuResponse(\001\022F\n\tRemoveFmu\022\033.Mode"
+      "liRpc.RemoveFmuRequest\032\034.ModeliRpc.Remov"
+      "eFmuResponse\022U\n\016AddChannelLink\022 .ModeliR"
+      "pc.AddChannelLinkRequest\032!.ModeliRpc.Add"
+      "ChannelLinkResponse\022^\n\021RemoveChannelLink"
+      "\022#.ModeliRpc.RemoveChannelLinkRequest\032$."
+      "ModeliRpc.RemoveChannelLinkResponse\022=\n\006S"
+      "etInt\022\030.ModeliRpc.SetIntRequest\032\031.Modeli"
+      "Rpc.SetIntResponse\022@\n\007SetReal\022\031.ModeliRp"
+      "c.SetRealRequest\032\032.ModeliRpc.SetRealResp"
+      "onse\022@\n\007SetBool\022\031.ModeliRpc.SetBoolReque"
+      "st\032\032.ModeliRpc.SetBoolResponse\022F\n\tSetStr"
+      "ing\022\033.ModeliRpc.SetStringRequest\032\034.Model"
+      "iRpc.SetStringResponse\022H\n\tNewValues\022\033.Mo"
+      "deliRpc.NewValuesRequest\032\034.ModeliRpc.New"
+      "ValuesResponse0\001\0226\n\003Log\022\025.ModeliRpc.LogR"
+      "equest\032\026.ModeliRpc.LogResponse0\001b\006proto3"
   };
   ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
-      descriptor, 3035);
+      descriptor, 3040);
   ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
     "ModeliRpc.proto", &protobuf_RegisterTypes);
 }
@@ -1335,7 +1335,7 @@ IntValues::IntValues()
 IntValues::IntValues(const IntValues& from)
   : ::google::protobuf::Message(),
       _internal_metadata_(NULL),
-      valuerefs_(from.valuerefs_),
+      value_refs_(from.value_refs_),
       values_(from.values_),
       _cached_size_(0) {
   _internal_metadata_.MergeFrom(from._internal_metadata_);
@@ -1383,7 +1383,7 @@ void IntValues::Clear() {
   // Prevent compiler warnings about cached_has_bits being unused
   (void) cached_has_bits;
 
-  valuerefs_.Clear();
+  value_refs_.Clear();
   values_.Clear();
   _internal_metadata_.Clear();
 }
@@ -1398,19 +1398,19 @@ bool IntValues::MergePartialFromCodedStream(
     tag = p.first;
     if (!p.second) goto handle_unusual;
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // repeated uint32 valueRefs = 1;
+      // repeated uint32 value_refs = 1;
       case 1: {
         if (static_cast< ::google::protobuf::uint8>(tag) ==
             static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
           DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                    ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
-                 input, this->mutable_valuerefs())));
+                 input, this->mutable_value_refs())));
         } else if (
             static_cast< ::google::protobuf::uint8>(tag) ==
             static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
           DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                    ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
-                 1, 10u, input, this->mutable_valuerefs())));
+                 1, 10u, input, this->mutable_value_refs())));
         } else {
           goto handle_unusual;
         }
@@ -1462,15 +1462,15 @@ void IntValues::SerializeWithCachedSizes(
   ::google::protobuf::uint32 cached_has_bits = 0;
   (void) cached_has_bits;
 
-  // repeated uint32 valueRefs = 1;
-  if (this->valuerefs_size() > 0) {
+  // repeated uint32 value_refs = 1;
+  if (this->value_refs_size() > 0) {
     ::google::protobuf::internal::WireFormatLite::WriteTag(1, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
     output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
-        _valuerefs_cached_byte_size_));
+        _value_refs_cached_byte_size_));
   }
-  for (int i = 0, n = this->valuerefs_size(); i < n; i++) {
+  for (int i = 0, n = this->value_refs_size(); i < n; i++) {
     ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
-      this->valuerefs(i), output);
+      this->value_refs(i), output);
   }
 
   // repeated int32 values = 2;
@@ -1498,17 +1498,17 @@ void IntValues::SerializeWithCachedSizes(
   ::google::protobuf::uint32 cached_has_bits = 0;
   (void) cached_has_bits;
 
-  // repeated uint32 valueRefs = 1;
-  if (this->valuerefs_size() > 0) {
+  // repeated uint32 value_refs = 1;
+  if (this->value_refs_size() > 0) {
     target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
       1,
       ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
       target);
     target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
         static_cast< ::google::protobuf::int32>(
-            _valuerefs_cached_byte_size_), target);
+            _value_refs_cached_byte_size_), target);
     target = ::google::protobuf::internal::WireFormatLite::
-      WriteUInt32NoTagToArray(this->valuerefs_, target);
+      WriteUInt32NoTagToArray(this->value_refs_, target);
   }
 
   // repeated int32 values = 2;
@@ -1541,10 +1541,10 @@ size_t IntValues::ByteSizeLong() const {
       ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
         (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
   }
-  // repeated uint32 valueRefs = 1;
+  // repeated uint32 value_refs = 1;
   {
     size_t data_size = ::google::protobuf::internal::WireFormatLite::
-      UInt32Size(this->valuerefs_);
+      UInt32Size(this->value_refs_);
     if (data_size > 0) {
       total_size += 1 +
         ::google::protobuf::internal::WireFormatLite::Int32Size(
@@ -1552,7 +1552,7 @@ size_t IntValues::ByteSizeLong() const {
     }
     int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
     GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-    _valuerefs_cached_byte_size_ = cached_size;
+    _value_refs_cached_byte_size_ = cached_size;
     GOOGLE_SAFE_CONCURRENT_WRITES_END();
     total_size += data_size;
   }
@@ -1602,7 +1602,7 @@ void IntValues::MergeFrom(const IntValues& from) {
   ::google::protobuf::uint32 cached_has_bits = 0;
   (void) cached_has_bits;
 
-  valuerefs_.MergeFrom(from.valuerefs_);
+  value_refs_.MergeFrom(from.value_refs_);
   values_.MergeFrom(from.values_);
 }
 
@@ -1630,7 +1630,7 @@ void IntValues::Swap(IntValues* other) {
 }
 void IntValues::InternalSwap(IntValues* other) {
   using std::swap;
-  valuerefs_.InternalSwap(&other->valuerefs_);
+  value_refs_.InternalSwap(&other->value_refs_);
   values_.InternalSwap(&other->values_);
   _internal_metadata_.Swap(&other->_internal_metadata_);
   swap(_cached_size_, other->_cached_size_);
@@ -1662,7 +1662,7 @@ RealValues::RealValues()
 RealValues::RealValues(const RealValues& from)
   : ::google::protobuf::Message(),
       _internal_metadata_(NULL),
-      valuerefs_(from.valuerefs_),
+      value_refs_(from.value_refs_),
       values_(from.values_),
       _cached_size_(0) {
   _internal_metadata_.MergeFrom(from._internal_metadata_);
@@ -1710,7 +1710,7 @@ void RealValues::Clear() {
   // Prevent compiler warnings about cached_has_bits being unused
   (void) cached_has_bits;
 
-  valuerefs_.Clear();
+  value_refs_.Clear();
   values_.Clear();
   _internal_metadata_.Clear();
 }
@@ -1725,19 +1725,19 @@ bool RealValues::MergePartialFromCodedStream(
     tag = p.first;
     if (!p.second) goto handle_unusual;
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // repeated uint32 valueRefs = 1;
+      // repeated uint32 value_refs = 1;
       case 1: {
         if (static_cast< ::google::protobuf::uint8>(tag) ==
             static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
           DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                    ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
-                 input, this->mutable_valuerefs())));
+                 input, this->mutable_value_refs())));
         } else if (
             static_cast< ::google::protobuf::uint8>(tag) ==
             static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
           DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                    ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
-                 1, 10u, input, this->mutable_valuerefs())));
+                 1, 10u, input, this->mutable_value_refs())));
         } else {
           goto handle_unusual;
         }
@@ -1789,15 +1789,15 @@ void RealValues::SerializeWithCachedSizes(
   ::google::protobuf::uint32 cached_has_bits = 0;
   (void) cached_has_bits;
 
-  // repeated uint32 valueRefs = 1;
-  if (this->valuerefs_size() > 0) {
+  // repeated uint32 value_refs = 1;
+  if (this->value_refs_size() > 0) {
     ::google::protobuf::internal::WireFormatLite::WriteTag(1, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
     output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
-        _valuerefs_cached_byte_size_));
+        _value_refs_cached_byte_size_));
   }
-  for (int i = 0, n = this->valuerefs_size(); i < n; i++) {
+  for (int i = 0, n = this->value_refs_size(); i < n; i++) {
     ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
-      this->valuerefs(i), output);
+      this->value_refs(i), output);
   }
 
   // repeated double values = 2;
@@ -1823,17 +1823,17 @@ void RealValues::SerializeWithCachedSizes(
   ::google::protobuf::uint32 cached_has_bits = 0;
   (void) cached_has_bits;
 
-  // repeated uint32 valueRefs = 1;
-  if (this->valuerefs_size() > 0) {
+  // repeated uint32 value_refs = 1;
+  if (this->value_refs_size() > 0) {
     target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
       1,
       ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
       target);
     target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
         static_cast< ::google::protobuf::int32>(
-            _valuerefs_cached_byte_size_), target);
+            _value_refs_cached_byte_size_), target);
     target = ::google::protobuf::internal::WireFormatLite::
-      WriteUInt32NoTagToArray(this->valuerefs_, target);
+      WriteUInt32NoTagToArray(this->value_refs_, target);
   }
 
   // repeated double values = 2;
@@ -1866,10 +1866,10 @@ size_t RealValues::ByteSizeLong() const {
       ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
         (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
   }
-  // repeated uint32 valueRefs = 1;
+  // repeated uint32 value_refs = 1;
   {
     size_t data_size = ::google::protobuf::internal::WireFormatLite::
-      UInt32Size(this->valuerefs_);
+      UInt32Size(this->value_refs_);
     if (data_size > 0) {
       total_size += 1 +
         ::google::protobuf::internal::WireFormatLite::Int32Size(
@@ -1877,7 +1877,7 @@ size_t RealValues::ByteSizeLong() const {
     }
     int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
     GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-    _valuerefs_cached_byte_size_ = cached_size;
+    _value_refs_cached_byte_size_ = cached_size;
     GOOGLE_SAFE_CONCURRENT_WRITES_END();
     total_size += data_size;
   }
@@ -1927,7 +1927,7 @@ void RealValues::MergeFrom(const RealValues& from) {
   ::google::protobuf::uint32 cached_has_bits = 0;
   (void) cached_has_bits;
 
-  valuerefs_.MergeFrom(from.valuerefs_);
+  value_refs_.MergeFrom(from.value_refs_);
   values_.MergeFrom(from.values_);
 }
 
@@ -1955,7 +1955,7 @@ void RealValues::Swap(RealValues* other) {
 }
 void RealValues::InternalSwap(RealValues* other) {
   using std::swap;
-  valuerefs_.InternalSwap(&other->valuerefs_);
+  value_refs_.InternalSwap(&other->value_refs_);
   values_.InternalSwap(&other->values_);
   _internal_metadata_.Swap(&other->_internal_metadata_);
   swap(_cached_size_, other->_cached_size_);
@@ -1987,7 +1987,7 @@ BoolValues::BoolValues()
 BoolValues::BoolValues(const BoolValues& from)
   : ::google::protobuf::Message(),
       _internal_metadata_(NULL),
-      valuerefs_(from.valuerefs_),
+      value_refs_(from.value_refs_),
       values_(from.values_),
       _cached_size_(0) {
   _internal_metadata_.MergeFrom(from._internal_metadata_);
@@ -2035,7 +2035,7 @@ void BoolValues::Clear() {
   // Prevent compiler warnings about cached_has_bits being unused
   (void) cached_has_bits;
 
-  valuerefs_.Clear();
+  value_refs_.Clear();
   values_.Clear();
   _internal_metadata_.Clear();
 }
@@ -2050,19 +2050,19 @@ bool BoolValues::MergePartialFromCodedStream(
     tag = p.first;
     if (!p.second) goto handle_unusual;
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // repeated uint32 valueRefs = 1;
+      // repeated uint32 value_refs = 1;
       case 1: {
         if (static_cast< ::google::protobuf::uint8>(tag) ==
             static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
           DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                    ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
-                 input, this->mutable_valuerefs())));
+                 input, this->mutable_value_refs())));
         } else if (
             static_cast< ::google::protobuf::uint8>(tag) ==
             static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
           DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                    ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
-                 1, 10u, input, this->mutable_valuerefs())));
+                 1, 10u, input, this->mutable_value_refs())));
         } else {
           goto handle_unusual;
         }
@@ -2114,15 +2114,15 @@ void BoolValues::SerializeWithCachedSizes(
   ::google::protobuf::uint32 cached_has_bits = 0;
   (void) cached_has_bits;
 
-  // repeated uint32 valueRefs = 1;
-  if (this->valuerefs_size() > 0) {
+  // repeated uint32 value_refs = 1;
+  if (this->value_refs_size() > 0) {
     ::google::protobuf::internal::WireFormatLite::WriteTag(1, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
     output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
-        _valuerefs_cached_byte_size_));
+        _value_refs_cached_byte_size_));
   }
-  for (int i = 0, n = this->valuerefs_size(); i < n; i++) {
+  for (int i = 0, n = this->value_refs_size(); i < n; i++) {
     ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
-      this->valuerefs(i), output);
+      this->value_refs(i), output);
   }
 
   // repeated int32 values = 2;
@@ -2150,17 +2150,17 @@ void BoolValues::SerializeWithCachedSizes(
   ::google::protobuf::uint32 cached_has_bits = 0;
   (void) cached_has_bits;
 
-  // repeated uint32 valueRefs = 1;
-  if (this->valuerefs_size() > 0) {
+  // repeated uint32 value_refs = 1;
+  if (this->value_refs_size() > 0) {
     target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
       1,
       ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
       target);
     target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
         static_cast< ::google::protobuf::int32>(
-            _valuerefs_cached_byte_size_), target);
+            _value_refs_cached_byte_size_), target);
     target = ::google::protobuf::internal::WireFormatLite::
-      WriteUInt32NoTagToArray(this->valuerefs_, target);
+      WriteUInt32NoTagToArray(this->value_refs_, target);
   }
 
   // repeated int32 values = 2;
@@ -2193,10 +2193,10 @@ size_t BoolValues::ByteSizeLong() const {
       ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
         (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
   }
-  // repeated uint32 valueRefs = 1;
+  // repeated uint32 value_refs = 1;
   {
     size_t data_size = ::google::protobuf::internal::WireFormatLite::
-      UInt32Size(this->valuerefs_);
+      UInt32Size(this->value_refs_);
     if (data_size > 0) {
       total_size += 1 +
         ::google::protobuf::internal::WireFormatLite::Int32Size(
@@ -2204,7 +2204,7 @@ size_t BoolValues::ByteSizeLong() const {
     }
     int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
     GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-    _valuerefs_cached_byte_size_ = cached_size;
+    _value_refs_cached_byte_size_ = cached_size;
     GOOGLE_SAFE_CONCURRENT_WRITES_END();
     total_size += data_size;
   }
@@ -2254,7 +2254,7 @@ void BoolValues::MergeFrom(const BoolValues& from) {
   ::google::protobuf::uint32 cached_has_bits = 0;
   (void) cached_has_bits;
 
-  valuerefs_.MergeFrom(from.valuerefs_);
+  value_refs_.MergeFrom(from.value_refs_);
   values_.MergeFrom(from.values_);
 }
 
@@ -2282,7 +2282,7 @@ void BoolValues::Swap(BoolValues* other) {
 }
 void BoolValues::InternalSwap(BoolValues* other) {
   using std::swap;
-  valuerefs_.InternalSwap(&other->valuerefs_);
+  value_refs_.InternalSwap(&other->value_refs_);
   values_.InternalSwap(&other->values_);
   _internal_metadata_.Swap(&other->_internal_metadata_);
   swap(_cached_size_, other->_cached_size_);
@@ -2314,7 +2314,7 @@ StringValues::StringValues()
 StringValues::StringValues(const StringValues& from)
   : ::google::protobuf::Message(),
       _internal_metadata_(NULL),
-      valuerefs_(from.valuerefs_),
+      value_refs_(from.value_refs_),
       values_(from.values_),
       _cached_size_(0) {
   _internal_metadata_.MergeFrom(from._internal_metadata_);
@@ -2362,7 +2362,7 @@ void StringValues::Clear() {
   // Prevent compiler warnings about cached_has_bits being unused
   (void) cached_has_bits;
 
-  valuerefs_.Clear();
+  value_refs_.Clear();
   values_.Clear();
   _internal_metadata_.Clear();
 }
@@ -2377,19 +2377,19 @@ bool StringValues::MergePartialFromCodedStream(
     tag = p.first;
     if (!p.second) goto handle_unusual;
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // repeated uint32 valueRefs = 1;
+      // repeated uint32 value_refs = 1;
       case 1: {
         if (static_cast< ::google::protobuf::uint8>(tag) ==
             static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
           DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                    ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
-                 input, this->mutable_valuerefs())));
+                 input, this->mutable_value_refs())));
         } else if (
             static_cast< ::google::protobuf::uint8>(tag) ==
             static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
           DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                    ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
-                 1, 10u, input, this->mutable_valuerefs())));
+                 1, 10u, input, this->mutable_value_refs())));
         } else {
           goto handle_unusual;
         }
@@ -2439,15 +2439,15 @@ void StringValues::SerializeWithCachedSizes(
   ::google::protobuf::uint32 cached_has_bits = 0;
   (void) cached_has_bits;
 
-  // repeated uint32 valueRefs = 1;
-  if (this->valuerefs_size() > 0) {
+  // repeated uint32 value_refs = 1;
+  if (this->value_refs_size() > 0) {
     ::google::protobuf::internal::WireFormatLite::WriteTag(1, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
     output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
-        _valuerefs_cached_byte_size_));
+        _value_refs_cached_byte_size_));
   }
-  for (int i = 0, n = this->valuerefs_size(); i < n; i++) {
+  for (int i = 0, n = this->value_refs_size(); i < n; i++) {
     ::google::protobuf::internal::WireFormatLite::WriteUInt32NoTag(
-      this->valuerefs(i), output);
+      this->value_refs(i), output);
   }
 
   // repeated string values = 2;
@@ -2474,17 +2474,17 @@ void StringValues::SerializeWithCachedSizes(
   ::google::protobuf::uint32 cached_has_bits = 0;
   (void) cached_has_bits;
 
-  // repeated uint32 valueRefs = 1;
-  if (this->valuerefs_size() > 0) {
+  // repeated uint32 value_refs = 1;
+  if (this->value_refs_size() > 0) {
     target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
       1,
       ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
       target);
     target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
         static_cast< ::google::protobuf::int32>(
-            _valuerefs_cached_byte_size_), target);
+            _value_refs_cached_byte_size_), target);
     target = ::google::protobuf::internal::WireFormatLite::
-      WriteUInt32NoTagToArray(this->valuerefs_, target);
+      WriteUInt32NoTagToArray(this->value_refs_, target);
   }
 
   // repeated string values = 2;
@@ -2514,10 +2514,10 @@ size_t StringValues::ByteSizeLong() const {
       ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
         (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
   }
-  // repeated uint32 valueRefs = 1;
+  // repeated uint32 value_refs = 1;
   {
     size_t data_size = ::google::protobuf::internal::WireFormatLite::
-      UInt32Size(this->valuerefs_);
+      UInt32Size(this->value_refs_);
     if (data_size > 0) {
       total_size += 1 +
         ::google::protobuf::internal::WireFormatLite::Int32Size(
@@ -2525,7 +2525,7 @@ size_t StringValues::ByteSizeLong() const {
     }
     int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
     GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-    _valuerefs_cached_byte_size_ = cached_size;
+    _value_refs_cached_byte_size_ = cached_size;
     GOOGLE_SAFE_CONCURRENT_WRITES_END();
     total_size += data_size;
   }
@@ -2567,7 +2567,7 @@ void StringValues::MergeFrom(const StringValues& from) {
   ::google::protobuf::uint32 cached_has_bits = 0;
   (void) cached_has_bits;
 
-  valuerefs_.MergeFrom(from.valuerefs_);
+  value_refs_.MergeFrom(from.value_refs_);
   values_.MergeFrom(from.values_);
 }
 
@@ -2595,7 +2595,7 @@ void StringValues::Swap(StringValues* other) {
 }
 void StringValues::InternalSwap(StringValues* other) {
   using std::swap;
-  valuerefs_.InternalSwap(&other->valuerefs_);
+  value_refs_.InternalSwap(&other->value_refs_);
   values_.InternalSwap(&other->values_);
   _internal_metadata_.Swap(&other->_internal_metadata_);
   swap(_cached_size_, other->_cached_size_);
@@ -4807,7 +4807,7 @@ void AddFmuRequest::InitAsDefaultInstance() {
 }
 #if !defined(_MSC_VER) || _MSC_VER >= 1900
 const int AddFmuRequest::kInstanceNameFieldNumber;
-const int AddFmuRequest::kDataFieldNumber;
+const int AddFmuRequest::kChunkFieldNumber;
 #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
 
 AddFmuRequest::AddFmuRequest()
@@ -4827,16 +4827,16 @@ AddFmuRequest::AddFmuRequest(const AddFmuRequest& from)
   if (from.instance_name().size() > 0) {
     instance_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.instance_name_);
   }
-  data_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  if (from.data().size() > 0) {
-    data_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.data_);
+  chunk_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.chunk().size() > 0) {
+    chunk_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.chunk_);
   }
   // @@protoc_insertion_point(copy_constructor:ModeliRpc.AddFmuRequest)
 }
 
 void AddFmuRequest::SharedCtor() {
   instance_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  data_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  chunk_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
   _cached_size_ = 0;
 }
 
@@ -4847,7 +4847,7 @@ AddFmuRequest::~AddFmuRequest() {
 
 void AddFmuRequest::SharedDtor() {
   instance_name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  data_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  chunk_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
 
 void AddFmuRequest::SetCachedSize(int size) const {
@@ -4880,7 +4880,7 @@ void AddFmuRequest::Clear() {
   (void) cached_has_bits;
 
   instance_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  data_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  chunk_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
   _internal_metadata_.Clear();
 }
 
@@ -4910,12 +4910,12 @@ bool AddFmuRequest::MergePartialFromCodedStream(
         break;
       }
 
-      // bytes data = 2;
+      // bytes chunk = 2;
       case 2: {
         if (static_cast< ::google::protobuf::uint8>(tag) ==
             static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
           DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
-                input, this->mutable_data()));
+                input, this->mutable_chunk()));
         } else {
           goto handle_unusual;
         }
@@ -4958,10 +4958,10 @@ void AddFmuRequest::SerializeWithCachedSizes(
       1, this->instance_name(), output);
   }
 
-  // bytes data = 2;
-  if (this->data().size() > 0) {
+  // bytes chunk = 2;
+  if (this->chunk().size() > 0) {
     ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
-      2, this->data(), output);
+      2, this->chunk(), output);
   }
 
   if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
@@ -4989,11 +4989,11 @@ void AddFmuRequest::SerializeWithCachedSizes(
         1, this->instance_name(), target);
   }
 
-  // bytes data = 2;
-  if (this->data().size() > 0) {
+  // bytes chunk = 2;
+  if (this->chunk().size() > 0) {
     target =
       ::google::protobuf::internal::WireFormatLite::WriteBytesToArray(
-        2, this->data(), target);
+        2, this->chunk(), target);
   }
 
   if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
@@ -5020,11 +5020,11 @@ size_t AddFmuRequest::ByteSizeLong() const {
         this->instance_name());
   }
 
-  // bytes data = 2;
-  if (this->data().size() > 0) {
+  // bytes chunk = 2;
+  if (this->chunk().size() > 0) {
     total_size += 1 +
       ::google::protobuf::internal::WireFormatLite::BytesSize(
-        this->data());
+        this->chunk());
   }
 
   int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
@@ -5060,9 +5060,9 @@ void AddFmuRequest::MergeFrom(const AddFmuRequest& from) {
 
     instance_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.instance_name_);
   }
-  if (from.data().size() > 0) {
+  if (from.chunk().size() > 0) {
 
-    data_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.data_);
+    chunk_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.chunk_);
   }
 }
 
@@ -5091,7 +5091,7 @@ void AddFmuRequest::Swap(AddFmuRequest* other) {
 void AddFmuRequest::InternalSwap(AddFmuRequest* other) {
   using std::swap;
   instance_name_.Swap(&other->instance_name_);
-  data_.Swap(&other->data_);
+  chunk_.Swap(&other->chunk_);
   _internal_metadata_.Swap(&other->_internal_metadata_);
   swap(_cached_size_, other->_cached_size_);
 }
diff --git a/ModeliRpc_Cpp/ModeliRpc.pb.h b/ModeliRpc_Cpp/ModeliRpc.pb.h
index 520cae7e3fb1d9817ace20ef5fbc118e05ede860..c1871437e03d13fd71c76b4a5f4e29702c7968be 100644
--- a/ModeliRpc_Cpp/ModeliRpc.pb.h
+++ b/ModeliRpc_Cpp/ModeliRpc.pb.h
@@ -357,17 +357,17 @@ class IntValues : public ::google::protobuf::Message /* @@protoc_insertion_point
 
   // accessors -------------------------------------------------------
 
-  // repeated uint32 valueRefs = 1;
-  int valuerefs_size() const;
-  void clear_valuerefs();
+  // repeated uint32 value_refs = 1;
+  int value_refs_size() const;
+  void clear_value_refs();
   static const int kValueRefsFieldNumber = 1;
-  ::google::protobuf::uint32 valuerefs(int index) const;
-  void set_valuerefs(int index, ::google::protobuf::uint32 value);
-  void add_valuerefs(::google::protobuf::uint32 value);
+  ::google::protobuf::uint32 value_refs(int index) const;
+  void set_value_refs(int index, ::google::protobuf::uint32 value);
+  void add_value_refs(::google::protobuf::uint32 value);
   const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
-      valuerefs() const;
+      value_refs() const;
   ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
-      mutable_valuerefs();
+      mutable_value_refs();
 
   // repeated int32 values = 2;
   int values_size() const;
@@ -385,8 +385,8 @@ class IntValues : public ::google::protobuf::Message /* @@protoc_insertion_point
  private:
 
   ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
-  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > valuerefs_;
-  mutable int _valuerefs_cached_byte_size_;
+  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > value_refs_;
+  mutable int _value_refs_cached_byte_size_;
   ::google::protobuf::RepeatedField< ::google::protobuf::int32 > values_;
   mutable int _values_cached_byte_size_;
   mutable int _cached_size_;
@@ -477,17 +477,17 @@ class RealValues : public ::google::protobuf::Message /* @@protoc_insertion_poin
 
   // accessors -------------------------------------------------------
 
-  // repeated uint32 valueRefs = 1;
-  int valuerefs_size() const;
-  void clear_valuerefs();
+  // repeated uint32 value_refs = 1;
+  int value_refs_size() const;
+  void clear_value_refs();
   static const int kValueRefsFieldNumber = 1;
-  ::google::protobuf::uint32 valuerefs(int index) const;
-  void set_valuerefs(int index, ::google::protobuf::uint32 value);
-  void add_valuerefs(::google::protobuf::uint32 value);
+  ::google::protobuf::uint32 value_refs(int index) const;
+  void set_value_refs(int index, ::google::protobuf::uint32 value);
+  void add_value_refs(::google::protobuf::uint32 value);
   const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
-      valuerefs() const;
+      value_refs() const;
   ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
-      mutable_valuerefs();
+      mutable_value_refs();
 
   // repeated double values = 2;
   int values_size() const;
@@ -505,8 +505,8 @@ class RealValues : public ::google::protobuf::Message /* @@protoc_insertion_poin
  private:
 
   ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
-  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > valuerefs_;
-  mutable int _valuerefs_cached_byte_size_;
+  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > value_refs_;
+  mutable int _value_refs_cached_byte_size_;
   ::google::protobuf::RepeatedField< double > values_;
   mutable int _values_cached_byte_size_;
   mutable int _cached_size_;
@@ -597,17 +597,17 @@ class BoolValues : public ::google::protobuf::Message /* @@protoc_insertion_poin
 
   // accessors -------------------------------------------------------
 
-  // repeated uint32 valueRefs = 1;
-  int valuerefs_size() const;
-  void clear_valuerefs();
+  // repeated uint32 value_refs = 1;
+  int value_refs_size() const;
+  void clear_value_refs();
   static const int kValueRefsFieldNumber = 1;
-  ::google::protobuf::uint32 valuerefs(int index) const;
-  void set_valuerefs(int index, ::google::protobuf::uint32 value);
-  void add_valuerefs(::google::protobuf::uint32 value);
+  ::google::protobuf::uint32 value_refs(int index) const;
+  void set_value_refs(int index, ::google::protobuf::uint32 value);
+  void add_value_refs(::google::protobuf::uint32 value);
   const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
-      valuerefs() const;
+      value_refs() const;
   ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
-      mutable_valuerefs();
+      mutable_value_refs();
 
   // repeated int32 values = 2;
   int values_size() const;
@@ -625,8 +625,8 @@ class BoolValues : public ::google::protobuf::Message /* @@protoc_insertion_poin
  private:
 
   ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
-  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > valuerefs_;
-  mutable int _valuerefs_cached_byte_size_;
+  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > value_refs_;
+  mutable int _value_refs_cached_byte_size_;
   ::google::protobuf::RepeatedField< ::google::protobuf::int32 > values_;
   mutable int _values_cached_byte_size_;
   mutable int _cached_size_;
@@ -717,17 +717,17 @@ class StringValues : public ::google::protobuf::Message /* @@protoc_insertion_po
 
   // accessors -------------------------------------------------------
 
-  // repeated uint32 valueRefs = 1;
-  int valuerefs_size() const;
-  void clear_valuerefs();
+  // repeated uint32 value_refs = 1;
+  int value_refs_size() const;
+  void clear_value_refs();
   static const int kValueRefsFieldNumber = 1;
-  ::google::protobuf::uint32 valuerefs(int index) const;
-  void set_valuerefs(int index, ::google::protobuf::uint32 value);
-  void add_valuerefs(::google::protobuf::uint32 value);
+  ::google::protobuf::uint32 value_refs(int index) const;
+  void set_value_refs(int index, ::google::protobuf::uint32 value);
+  void add_value_refs(::google::protobuf::uint32 value);
   const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
-      valuerefs() const;
+      value_refs() const;
   ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
-      mutable_valuerefs();
+      mutable_value_refs();
 
   // repeated string values = 2;
   int values_size() const;
@@ -755,8 +755,8 @@ class StringValues : public ::google::protobuf::Message /* @@protoc_insertion_po
  private:
 
   ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
-  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > valuerefs_;
-  mutable int _valuerefs_cached_byte_size_;
+  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > value_refs_;
+  mutable int _value_refs_cached_byte_size_;
   ::google::protobuf::RepeatedPtrField< ::std::string> values_;
   mutable int _cached_size_;
   friend struct ::protobuf_ModeliRpc_2eproto::TableStruct;
@@ -1774,26 +1774,26 @@ class AddFmuRequest : public ::google::protobuf::Message /* @@protoc_insertion_p
   ::std::string* release_instance_name();
   void set_allocated_instance_name(::std::string* instance_name);
 
-  // bytes data = 2;
-  void clear_data();
-  static const int kDataFieldNumber = 2;
-  const ::std::string& data() const;
-  void set_data(const ::std::string& value);
+  // bytes chunk = 2;
+  void clear_chunk();
+  static const int kChunkFieldNumber = 2;
+  const ::std::string& chunk() const;
+  void set_chunk(const ::std::string& value);
   #if LANG_CXX11
-  void set_data(::std::string&& value);
+  void set_chunk(::std::string&& value);
   #endif
-  void set_data(const char* value);
-  void set_data(const void* value, size_t size);
-  ::std::string* mutable_data();
-  ::std::string* release_data();
-  void set_allocated_data(::std::string* data);
+  void set_chunk(const char* value);
+  void set_chunk(const void* value, size_t size);
+  ::std::string* mutable_chunk();
+  ::std::string* release_chunk();
+  void set_allocated_chunk(::std::string* chunk);
 
   // @@protoc_insertion_point(class_scope:ModeliRpc.AddFmuRequest)
  private:
 
   ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
   ::google::protobuf::internal::ArenaStringPtr instance_name_;
-  ::google::protobuf::internal::ArenaStringPtr data_;
+  ::google::protobuf::internal::ArenaStringPtr chunk_;
   mutable int _cached_size_;
   friend struct ::protobuf_ModeliRpc_2eproto::TableStruct;
   friend void ::protobuf_ModeliRpc_2eproto::InitDefaultsAddFmuRequestImpl();
@@ -3832,34 +3832,34 @@ class LogResponse : public ::google::protobuf::Message /* @@protoc_insertion_poi
 #endif  // __GNUC__
 // IntValues
 
-// repeated uint32 valueRefs = 1;
-inline int IntValues::valuerefs_size() const {
-  return valuerefs_.size();
+// repeated uint32 value_refs = 1;
+inline int IntValues::value_refs_size() const {
+  return value_refs_.size();
 }
-inline void IntValues::clear_valuerefs() {
-  valuerefs_.Clear();
+inline void IntValues::clear_value_refs() {
+  value_refs_.Clear();
 }
-inline ::google::protobuf::uint32 IntValues::valuerefs(int index) const {
-  // @@protoc_insertion_point(field_get:ModeliRpc.IntValues.valueRefs)
-  return valuerefs_.Get(index);
+inline ::google::protobuf::uint32 IntValues::value_refs(int index) const {
+  // @@protoc_insertion_point(field_get:ModeliRpc.IntValues.value_refs)
+  return value_refs_.Get(index);
 }
-inline void IntValues::set_valuerefs(int index, ::google::protobuf::uint32 value) {
-  valuerefs_.Set(index, value);
-  // @@protoc_insertion_point(field_set:ModeliRpc.IntValues.valueRefs)
+inline void IntValues::set_value_refs(int index, ::google::protobuf::uint32 value) {
+  value_refs_.Set(index, value);
+  // @@protoc_insertion_point(field_set:ModeliRpc.IntValues.value_refs)
 }
-inline void IntValues::add_valuerefs(::google::protobuf::uint32 value) {
-  valuerefs_.Add(value);
-  // @@protoc_insertion_point(field_add:ModeliRpc.IntValues.valueRefs)
+inline void IntValues::add_value_refs(::google::protobuf::uint32 value) {
+  value_refs_.Add(value);
+  // @@protoc_insertion_point(field_add:ModeliRpc.IntValues.value_refs)
 }
 inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
-IntValues::valuerefs() const {
-  // @@protoc_insertion_point(field_list:ModeliRpc.IntValues.valueRefs)
-  return valuerefs_;
+IntValues::value_refs() const {
+  // @@protoc_insertion_point(field_list:ModeliRpc.IntValues.value_refs)
+  return value_refs_;
 }
 inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
-IntValues::mutable_valuerefs() {
-  // @@protoc_insertion_point(field_mutable_list:ModeliRpc.IntValues.valueRefs)
-  return &valuerefs_;
+IntValues::mutable_value_refs() {
+  // @@protoc_insertion_point(field_mutable_list:ModeliRpc.IntValues.value_refs)
+  return &value_refs_;
 }
 
 // repeated int32 values = 2;
@@ -3896,34 +3896,34 @@ IntValues::mutable_values() {
 
 // RealValues
 
-// repeated uint32 valueRefs = 1;
-inline int RealValues::valuerefs_size() const {
-  return valuerefs_.size();
+// repeated uint32 value_refs = 1;
+inline int RealValues::value_refs_size() const {
+  return value_refs_.size();
 }
-inline void RealValues::clear_valuerefs() {
-  valuerefs_.Clear();
+inline void RealValues::clear_value_refs() {
+  value_refs_.Clear();
 }
-inline ::google::protobuf::uint32 RealValues::valuerefs(int index) const {
-  // @@protoc_insertion_point(field_get:ModeliRpc.RealValues.valueRefs)
-  return valuerefs_.Get(index);
+inline ::google::protobuf::uint32 RealValues::value_refs(int index) const {
+  // @@protoc_insertion_point(field_get:ModeliRpc.RealValues.value_refs)
+  return value_refs_.Get(index);
 }
-inline void RealValues::set_valuerefs(int index, ::google::protobuf::uint32 value) {
-  valuerefs_.Set(index, value);
-  // @@protoc_insertion_point(field_set:ModeliRpc.RealValues.valueRefs)
+inline void RealValues::set_value_refs(int index, ::google::protobuf::uint32 value) {
+  value_refs_.Set(index, value);
+  // @@protoc_insertion_point(field_set:ModeliRpc.RealValues.value_refs)
 }
-inline void RealValues::add_valuerefs(::google::protobuf::uint32 value) {
-  valuerefs_.Add(value);
-  // @@protoc_insertion_point(field_add:ModeliRpc.RealValues.valueRefs)
+inline void RealValues::add_value_refs(::google::protobuf::uint32 value) {
+  value_refs_.Add(value);
+  // @@protoc_insertion_point(field_add:ModeliRpc.RealValues.value_refs)
 }
 inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
-RealValues::valuerefs() const {
-  // @@protoc_insertion_point(field_list:ModeliRpc.RealValues.valueRefs)
-  return valuerefs_;
+RealValues::value_refs() const {
+  // @@protoc_insertion_point(field_list:ModeliRpc.RealValues.value_refs)
+  return value_refs_;
 }
 inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
-RealValues::mutable_valuerefs() {
-  // @@protoc_insertion_point(field_mutable_list:ModeliRpc.RealValues.valueRefs)
-  return &valuerefs_;
+RealValues::mutable_value_refs() {
+  // @@protoc_insertion_point(field_mutable_list:ModeliRpc.RealValues.value_refs)
+  return &value_refs_;
 }
 
 // repeated double values = 2;
@@ -3960,34 +3960,34 @@ RealValues::mutable_values() {
 
 // BoolValues
 
-// repeated uint32 valueRefs = 1;
-inline int BoolValues::valuerefs_size() const {
-  return valuerefs_.size();
+// repeated uint32 value_refs = 1;
+inline int BoolValues::value_refs_size() const {
+  return value_refs_.size();
 }
-inline void BoolValues::clear_valuerefs() {
-  valuerefs_.Clear();
+inline void BoolValues::clear_value_refs() {
+  value_refs_.Clear();
 }
-inline ::google::protobuf::uint32 BoolValues::valuerefs(int index) const {
-  // @@protoc_insertion_point(field_get:ModeliRpc.BoolValues.valueRefs)
-  return valuerefs_.Get(index);
+inline ::google::protobuf::uint32 BoolValues::value_refs(int index) const {
+  // @@protoc_insertion_point(field_get:ModeliRpc.BoolValues.value_refs)
+  return value_refs_.Get(index);
 }
-inline void BoolValues::set_valuerefs(int index, ::google::protobuf::uint32 value) {
-  valuerefs_.Set(index, value);
-  // @@protoc_insertion_point(field_set:ModeliRpc.BoolValues.valueRefs)
+inline void BoolValues::set_value_refs(int index, ::google::protobuf::uint32 value) {
+  value_refs_.Set(index, value);
+  // @@protoc_insertion_point(field_set:ModeliRpc.BoolValues.value_refs)
 }
-inline void BoolValues::add_valuerefs(::google::protobuf::uint32 value) {
-  valuerefs_.Add(value);
-  // @@protoc_insertion_point(field_add:ModeliRpc.BoolValues.valueRefs)
+inline void BoolValues::add_value_refs(::google::protobuf::uint32 value) {
+  value_refs_.Add(value);
+  // @@protoc_insertion_point(field_add:ModeliRpc.BoolValues.value_refs)
 }
 inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
-BoolValues::valuerefs() const {
-  // @@protoc_insertion_point(field_list:ModeliRpc.BoolValues.valueRefs)
-  return valuerefs_;
+BoolValues::value_refs() const {
+  // @@protoc_insertion_point(field_list:ModeliRpc.BoolValues.value_refs)
+  return value_refs_;
 }
 inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
-BoolValues::mutable_valuerefs() {
-  // @@protoc_insertion_point(field_mutable_list:ModeliRpc.BoolValues.valueRefs)
-  return &valuerefs_;
+BoolValues::mutable_value_refs() {
+  // @@protoc_insertion_point(field_mutable_list:ModeliRpc.BoolValues.value_refs)
+  return &value_refs_;
 }
 
 // repeated int32 values = 2;
@@ -4024,34 +4024,34 @@ BoolValues::mutable_values() {
 
 // StringValues
 
-// repeated uint32 valueRefs = 1;
-inline int StringValues::valuerefs_size() const {
-  return valuerefs_.size();
+// repeated uint32 value_refs = 1;
+inline int StringValues::value_refs_size() const {
+  return value_refs_.size();
 }
-inline void StringValues::clear_valuerefs() {
-  valuerefs_.Clear();
+inline void StringValues::clear_value_refs() {
+  value_refs_.Clear();
 }
-inline ::google::protobuf::uint32 StringValues::valuerefs(int index) const {
-  // @@protoc_insertion_point(field_get:ModeliRpc.StringValues.valueRefs)
-  return valuerefs_.Get(index);
+inline ::google::protobuf::uint32 StringValues::value_refs(int index) const {
+  // @@protoc_insertion_point(field_get:ModeliRpc.StringValues.value_refs)
+  return value_refs_.Get(index);
 }
-inline void StringValues::set_valuerefs(int index, ::google::protobuf::uint32 value) {
-  valuerefs_.Set(index, value);
-  // @@protoc_insertion_point(field_set:ModeliRpc.StringValues.valueRefs)
+inline void StringValues::set_value_refs(int index, ::google::protobuf::uint32 value) {
+  value_refs_.Set(index, value);
+  // @@protoc_insertion_point(field_set:ModeliRpc.StringValues.value_refs)
 }
-inline void StringValues::add_valuerefs(::google::protobuf::uint32 value) {
-  valuerefs_.Add(value);
-  // @@protoc_insertion_point(field_add:ModeliRpc.StringValues.valueRefs)
+inline void StringValues::add_value_refs(::google::protobuf::uint32 value) {
+  value_refs_.Add(value);
+  // @@protoc_insertion_point(field_add:ModeliRpc.StringValues.value_refs)
 }
 inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
-StringValues::valuerefs() const {
-  // @@protoc_insertion_point(field_list:ModeliRpc.StringValues.valueRefs)
-  return valuerefs_;
+StringValues::value_refs() const {
+  // @@protoc_insertion_point(field_list:ModeliRpc.StringValues.value_refs)
+  return value_refs_;
 }
 inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
-StringValues::mutable_valuerefs() {
-  // @@protoc_insertion_point(field_mutable_list:ModeliRpc.StringValues.valueRefs)
-  return &valuerefs_;
+StringValues::mutable_value_refs() {
+  // @@protoc_insertion_point(field_mutable_list:ModeliRpc.StringValues.value_refs)
+  return &value_refs_;
 }
 
 // repeated string values = 2;
@@ -4434,57 +4434,57 @@ inline void AddFmuRequest::set_allocated_instance_name(::std::string* instance_n
   // @@protoc_insertion_point(field_set_allocated:ModeliRpc.AddFmuRequest.instance_name)
 }
 
-// bytes data = 2;
-inline void AddFmuRequest::clear_data() {
-  data_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+// bytes chunk = 2;
+inline void AddFmuRequest::clear_chunk() {
+  chunk_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
-inline const ::std::string& AddFmuRequest::data() const {
-  // @@protoc_insertion_point(field_get:ModeliRpc.AddFmuRequest.data)
-  return data_.GetNoArena();
+inline const ::std::string& AddFmuRequest::chunk() const {
+  // @@protoc_insertion_point(field_get:ModeliRpc.AddFmuRequest.chunk)
+  return chunk_.GetNoArena();
 }
-inline void AddFmuRequest::set_data(const ::std::string& value) {
+inline void AddFmuRequest::set_chunk(const ::std::string& value) {
   
-  data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
-  // @@protoc_insertion_point(field_set:ModeliRpc.AddFmuRequest.data)
+  chunk_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:ModeliRpc.AddFmuRequest.chunk)
 }
 #if LANG_CXX11
-inline void AddFmuRequest::set_data(::std::string&& value) {
+inline void AddFmuRequest::set_chunk(::std::string&& value) {
   
-  data_.SetNoArena(
+  chunk_.SetNoArena(
     &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:ModeliRpc.AddFmuRequest.data)
+  // @@protoc_insertion_point(field_set_rvalue:ModeliRpc.AddFmuRequest.chunk)
 }
 #endif
-inline void AddFmuRequest::set_data(const char* value) {
+inline void AddFmuRequest::set_chunk(const char* value) {
   GOOGLE_DCHECK(value != NULL);
   
-  data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:ModeliRpc.AddFmuRequest.data)
+  chunk_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:ModeliRpc.AddFmuRequest.chunk)
 }
-inline void AddFmuRequest::set_data(const void* value, size_t size) {
+inline void AddFmuRequest::set_chunk(const void* value, size_t size) {
   
-  data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+  chunk_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
       ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:ModeliRpc.AddFmuRequest.data)
+  // @@protoc_insertion_point(field_set_pointer:ModeliRpc.AddFmuRequest.chunk)
 }
-inline ::std::string* AddFmuRequest::mutable_data() {
+inline ::std::string* AddFmuRequest::mutable_chunk() {
   
-  // @@protoc_insertion_point(field_mutable:ModeliRpc.AddFmuRequest.data)
-  return data_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  // @@protoc_insertion_point(field_mutable:ModeliRpc.AddFmuRequest.chunk)
+  return chunk_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
-inline ::std::string* AddFmuRequest::release_data() {
-  // @@protoc_insertion_point(field_release:ModeliRpc.AddFmuRequest.data)
+inline ::std::string* AddFmuRequest::release_chunk() {
+  // @@protoc_insertion_point(field_release:ModeliRpc.AddFmuRequest.chunk)
   
-  return data_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  return chunk_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
-inline void AddFmuRequest::set_allocated_data(::std::string* data) {
-  if (data != NULL) {
+inline void AddFmuRequest::set_allocated_chunk(::std::string* chunk) {
+  if (chunk != NULL) {
     
   } else {
     
   }
-  data_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), data);
-  // @@protoc_insertion_point(field_set_allocated:ModeliRpc.AddFmuRequest.data)
+  chunk_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), chunk);
+  // @@protoc_insertion_point(field_set_allocated:ModeliRpc.AddFmuRequest.chunk)
 }
 
 // -------------------------------------------------------------------
diff --git a/ModeliRpc_Cs/ModeliRpc.cs b/ModeliRpc_Cs/ModeliRpc.cs
index 2c87dff104a853beb6eb421a4d39ed893dae33d6..cd0b050223ccfbc9963d1bd04f041621e60f9f84 100644
--- a/ModeliRpc_Cs/ModeliRpc.cs
+++ b/ModeliRpc_Cs/ModeliRpc.cs
@@ -22,74 +22,74 @@ namespace ModeliRpc {
     static ModeliRpcReflection() {
       byte[] descriptorData = global::System.Convert.FromBase64String(
           string.Concat(
-            "Cg9Nb2RlbGlScGMucHJvdG8SCU1vZGVsaVJwYyIuCglJbnRWYWx1ZXMSEQoJ",
-            "dmFsdWVSZWZzGAEgAygNEg4KBnZhbHVlcxgCIAMoBSIvCgpSZWFsVmFsdWVz",
-            "EhEKCXZhbHVlUmVmcxgBIAMoDRIOCgZ2YWx1ZXMYAiADKAEiLwoKQm9vbFZh",
-            "bHVlcxIRCgl2YWx1ZVJlZnMYASADKA0SDgoGdmFsdWVzGAIgAygFIjEKDFN0",
-            "cmluZ1ZhbHVlcxIRCgl2YWx1ZVJlZnMYASADKA0SDgoGdmFsdWVzGAIgAygJ",
-            "Io0BCgtDaGFubmVsTGluaxIcChRtYXN0ZXJfaW5zdGFuY2VfbmFtZRgBIAEo",
-            "CRIbChNzbGF2ZV9pbnN0YW5jZV9uYW1lGAIgASgJEhEKCW1hc3Rlcl92chgD",
-            "IAEoDRIQCghzbGF2ZV92chgEIAEoDRIOCgZmYWN0b3IYBSABKAESDgoGb2Zm",
-            "c2V0GAYgASgBIg0KC1BsYXlSZXF1ZXN0IjUKDFBsYXlSZXNwb25zZRIlCgZz",
-            "dGF0dXMYASABKA4yFS5Nb2RlbGlScGMuRm1pMlN0YXR1cyIfCg9QbGF5RmFz",
-            "dFJlcXVlc3QSDAoEdGltZRgBIAEoASI5ChBQbGF5RmFzdFJlc3BvbnNlEiUK",
-            "BnN0YXR1cxgBIAEoDjIVLk1vZGVsaVJwYy5GbWkyU3RhdHVzIg4KDFBhdXNl",
-            "UmVxdWVzdCIPCg1QYXVzZVJlc3BvbnNlIg0KC1N0b3BSZXF1ZXN0IjUKDFN0",
-            "b3BSZXNwb25zZRIlCgZzdGF0dXMYASABKA4yFS5Nb2RlbGlScGMuRm1pMlN0",
-            "YXR1cyI0Cg1BZGRGbXVSZXF1ZXN0EhUKDWluc3RhbmNlX25hbWUYASABKAkS",
-            "DAoEZGF0YRgCIAEoDCIhCg5BZGRGbXVSZXNwb25zZRIPCgdzdWNjZXNzGAEg",
-            "ASgIIikKEFJlbW92ZUZtdVJlcXVlc3QSFQoNaW5zdGFuY2VfbmFtZRgBIAEo",
-            "CSIkChFSZW1vdmVGbXVSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIkUKFUFk",
-            "ZENoYW5uZWxMaW5rUmVxdWVzdBIsCgxjaGFubmVsX2xpbmsYASABKAsyFi5N",
-            "b2RlbGlScGMuQ2hhbm5lbExpbmsiKQoWQWRkQ2hhbm5lbExpbmtSZXNwb25z",
-            "ZRIPCgdzdWNjZXNzGAEgASgIIkgKGFJlbW92ZUNoYW5uZWxMaW5rUmVxdWVz",
-            "dBIsCgxjaGFubmVsX2xpbmsYASABKAsyFi5Nb2RlbGlScGMuQ2hhbm5lbExp",
-            "bmsiLAoZUmVtb3ZlQ2hhbm5lbExpbmtSZXNwb25zZRIPCgdzdWNjZXNzGAEg",
-            "ASgIIkwKDVNldEludFJlcXVlc3QSFQoNaW5zdGFuY2VfbmFtZRgBIAEoCRIk",
-            "CgZ2YWx1ZXMYAiABKAsyFC5Nb2RlbGlScGMuSW50VmFsdWVzIjcKDlNldElu",
-            "dFJlc3BvbnNlEiUKBnN0YXR1cxgBIAEoDjIVLk1vZGVsaVJwYy5GbWkyU3Rh",
-            "dHVzIk4KDlNldFJlYWxSZXF1ZXN0EhUKDWluc3RhbmNlX25hbWUYASABKAkS",
-            "JQoGdmFsdWVzGAIgASgLMhUuTW9kZWxpUnBjLlJlYWxWYWx1ZXMiOAoPU2V0",
-            "UmVhbFJlc3BvbnNlEiUKBnN0YXR1cxgBIAEoDjIVLk1vZGVsaVJwYy5GbWky",
-            "U3RhdHVzIk4KDlNldEJvb2xSZXF1ZXN0EhUKDWluc3RhbmNlX25hbWUYASAB",
-            "KAkSJQoGdmFsdWVzGAIgASgLMhUuTW9kZWxpUnBjLkJvb2xWYWx1ZXMiOAoP",
-            "U2V0Qm9vbFJlc3BvbnNlEiUKBnN0YXR1cxgBIAEoDjIVLk1vZGVsaVJwYy5G",
-            "bWkyU3RhdHVzIlIKEFNldFN0cmluZ1JlcXVlc3QSFQoNaW5zdGFuY2VfbmFt",
-            "ZRgBIAEoCRInCgZ2YWx1ZXMYAiABKAsyFy5Nb2RlbGlScGMuU3RyaW5nVmFs",
-            "dWVzIjoKEVNldFN0cmluZ1Jlc3BvbnNlEiUKBnN0YXR1cxgBIAEoDjIVLk1v",
-            "ZGVsaVJwYy5GbWkyU3RhdHVzIhIKEE5ld1ZhbHVlc1JlcXVlc3Qi1AEKEU5l",
-            "d1ZhbHVlc1Jlc3BvbnNlEhEKCXRpbWVzdGFtcBgBIAEoARInCglpbnRWYWx1",
-            "ZXMYAiABKAsyFC5Nb2RlbGlScGMuSW50VmFsdWVzEikKCnJlYWxWYWx1ZXMY",
-            "AyABKAsyFS5Nb2RlbGlScGMuUmVhbFZhbHVlcxIpCgpib29sVmFsdWVzGAQg",
-            "ASgLMhUuTW9kZWxpUnBjLkJvb2xWYWx1ZXMSLQoMc3RyaW5nVmFsdWVzGAUg",
-            "ASgLMhcuTW9kZWxpUnBjLlN0cmluZ1ZhbHVlcyIMCgpMb2dSZXF1ZXN0IlwK",
-            "C0xvZ1Jlc3BvbnNlEhUKDWluc3RhbmNlX25hbWUYASABKAkSJQoGc3RhdHVz",
-            "GAIgASgOMhUuTW9kZWxpUnBjLkZtaTJTdGF0dXMSDwoHbWVzc2FnZRgDIAEo",
-            "CSpvCgpGbWkyU3RhdHVzEgsKB0ZNSTJfT0sQABIQCgxGTUkyX1dBUk5JTkcQ",
-            "ARIQCgxGTUkyX0RJU0NBUkQQAhIOCgpGTUkyX0VSUk9SEAMSDgoKRk1JMl9G",
-            "QVRBTBAEEhAKDEZNSTJfUEVORElORxAFMs8HCg1Nb2RlbGlCYWNrZW5kEjcK",
-            "BFBsYXkSFi5Nb2RlbGlScGMuUGxheVJlcXVlc3QaFy5Nb2RlbGlScGMuUGxh",
-            "eVJlc3BvbnNlEkMKCFBsYXlGYXN0EhouTW9kZWxpUnBjLlBsYXlGYXN0UmVx",
-            "dWVzdBobLk1vZGVsaVJwYy5QbGF5RmFzdFJlc3BvbnNlEjoKBVBhdXNlEhcu",
-            "TW9kZWxpUnBjLlBhdXNlUmVxdWVzdBoYLk1vZGVsaVJwYy5QYXVzZVJlc3Bv",
-            "bnNlEjcKBFN0b3ASFi5Nb2RlbGlScGMuU3RvcFJlcXVlc3QaFy5Nb2RlbGlS",
-            "cGMuU3RvcFJlc3BvbnNlEj8KBkFkZEZtdRIYLk1vZGVsaVJwYy5BZGRGbXVS",
-            "ZXF1ZXN0GhkuTW9kZWxpUnBjLkFkZEZtdVJlc3BvbnNlKAESRgoJUmVtb3Zl",
-            "Rm11EhsuTW9kZWxpUnBjLlJlbW92ZUZtdVJlcXVlc3QaHC5Nb2RlbGlScGMu",
-            "UmVtb3ZlRm11UmVzcG9uc2USVQoOQWRkQ2hhbm5lbExpbmsSIC5Nb2RlbGlS",
-            "cGMuQWRkQ2hhbm5lbExpbmtSZXF1ZXN0GiEuTW9kZWxpUnBjLkFkZENoYW5u",
-            "ZWxMaW5rUmVzcG9uc2USXgoRUmVtb3ZlQ2hhbm5lbExpbmsSIy5Nb2RlbGlS",
-            "cGMuUmVtb3ZlQ2hhbm5lbExpbmtSZXF1ZXN0GiQuTW9kZWxpUnBjLlJlbW92",
-            "ZUNoYW5uZWxMaW5rUmVzcG9uc2USPQoGU2V0SW50EhguTW9kZWxpUnBjLlNl",
-            "dEludFJlcXVlc3QaGS5Nb2RlbGlScGMuU2V0SW50UmVzcG9uc2USQAoHU2V0",
-            "UmVhbBIZLk1vZGVsaVJwYy5TZXRSZWFsUmVxdWVzdBoaLk1vZGVsaVJwYy5T",
-            "ZXRSZWFsUmVzcG9uc2USQAoHU2V0Qm9vbBIZLk1vZGVsaVJwYy5TZXRCb29s",
-            "UmVxdWVzdBoaLk1vZGVsaVJwYy5TZXRCb29sUmVzcG9uc2USRgoJU2V0U3Ry",
-            "aW5nEhsuTW9kZWxpUnBjLlNldFN0cmluZ1JlcXVlc3QaHC5Nb2RlbGlScGMu",
-            "U2V0U3RyaW5nUmVzcG9uc2USSAoJTmV3VmFsdWVzEhsuTW9kZWxpUnBjLk5l",
-            "d1ZhbHVlc1JlcXVlc3QaHC5Nb2RlbGlScGMuTmV3VmFsdWVzUmVzcG9uc2Uw",
-            "ARI2CgNMb2cSFS5Nb2RlbGlScGMuTG9nUmVxdWVzdBoWLk1vZGVsaVJwYy5M",
-            "b2dSZXNwb25zZTABYgZwcm90bzM="));
+            "Cg9Nb2RlbGlScGMucHJvdG8SCU1vZGVsaVJwYyIvCglJbnRWYWx1ZXMSEgoK",
+            "dmFsdWVfcmVmcxgBIAMoDRIOCgZ2YWx1ZXMYAiADKAUiMAoKUmVhbFZhbHVl",
+            "cxISCgp2YWx1ZV9yZWZzGAEgAygNEg4KBnZhbHVlcxgCIAMoASIwCgpCb29s",
+            "VmFsdWVzEhIKCnZhbHVlX3JlZnMYASADKA0SDgoGdmFsdWVzGAIgAygFIjIK",
+            "DFN0cmluZ1ZhbHVlcxISCgp2YWx1ZV9yZWZzGAEgAygNEg4KBnZhbHVlcxgC",
+            "IAMoCSKNAQoLQ2hhbm5lbExpbmsSHAoUbWFzdGVyX2luc3RhbmNlX25hbWUY",
+            "ASABKAkSGwoTc2xhdmVfaW5zdGFuY2VfbmFtZRgCIAEoCRIRCgltYXN0ZXJf",
+            "dnIYAyABKA0SEAoIc2xhdmVfdnIYBCABKA0SDgoGZmFjdG9yGAUgASgBEg4K",
+            "Bm9mZnNldBgGIAEoASINCgtQbGF5UmVxdWVzdCI1CgxQbGF5UmVzcG9uc2US",
+            "JQoGc3RhdHVzGAEgASgOMhUuTW9kZWxpUnBjLkZtaTJTdGF0dXMiHwoPUGxh",
+            "eUZhc3RSZXF1ZXN0EgwKBHRpbWUYASABKAEiOQoQUGxheUZhc3RSZXNwb25z",
+            "ZRIlCgZzdGF0dXMYASABKA4yFS5Nb2RlbGlScGMuRm1pMlN0YXR1cyIOCgxQ",
+            "YXVzZVJlcXVlc3QiDwoNUGF1c2VSZXNwb25zZSINCgtTdG9wUmVxdWVzdCI1",
+            "CgxTdG9wUmVzcG9uc2USJQoGc3RhdHVzGAEgASgOMhUuTW9kZWxpUnBjLkZt",
+            "aTJTdGF0dXMiNQoNQWRkRm11UmVxdWVzdBIVCg1pbnN0YW5jZV9uYW1lGAEg",
+            "ASgJEg0KBWNodW5rGAIgASgMIiEKDkFkZEZtdVJlc3BvbnNlEg8KB3N1Y2Nl",
+            "c3MYASABKAgiKQoQUmVtb3ZlRm11UmVxdWVzdBIVCg1pbnN0YW5jZV9uYW1l",
+            "GAEgASgJIiQKEVJlbW92ZUZtdVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgi",
+            "RQoVQWRkQ2hhbm5lbExpbmtSZXF1ZXN0EiwKDGNoYW5uZWxfbGluaxgBIAEo",
+            "CzIWLk1vZGVsaVJwYy5DaGFubmVsTGluayIpChZBZGRDaGFubmVsTGlua1Jl",
+            "c3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiSAoYUmVtb3ZlQ2hhbm5lbExpbmtS",
+            "ZXF1ZXN0EiwKDGNoYW5uZWxfbGluaxgBIAEoCzIWLk1vZGVsaVJwYy5DaGFu",
+            "bmVsTGluayIsChlSZW1vdmVDaGFubmVsTGlua1Jlc3BvbnNlEg8KB3N1Y2Nl",
+            "c3MYASABKAgiTAoNU2V0SW50UmVxdWVzdBIVCg1pbnN0YW5jZV9uYW1lGAEg",
+            "ASgJEiQKBnZhbHVlcxgCIAEoCzIULk1vZGVsaVJwYy5JbnRWYWx1ZXMiNwoO",
+            "U2V0SW50UmVzcG9uc2USJQoGc3RhdHVzGAEgASgOMhUuTW9kZWxpUnBjLkZt",
+            "aTJTdGF0dXMiTgoOU2V0UmVhbFJlcXVlc3QSFQoNaW5zdGFuY2VfbmFtZRgB",
+            "IAEoCRIlCgZ2YWx1ZXMYAiABKAsyFS5Nb2RlbGlScGMuUmVhbFZhbHVlcyI4",
+            "Cg9TZXRSZWFsUmVzcG9uc2USJQoGc3RhdHVzGAEgASgOMhUuTW9kZWxpUnBj",
+            "LkZtaTJTdGF0dXMiTgoOU2V0Qm9vbFJlcXVlc3QSFQoNaW5zdGFuY2VfbmFt",
+            "ZRgBIAEoCRIlCgZ2YWx1ZXMYAiABKAsyFS5Nb2RlbGlScGMuQm9vbFZhbHVl",
+            "cyI4Cg9TZXRCb29sUmVzcG9uc2USJQoGc3RhdHVzGAEgASgOMhUuTW9kZWxp",
+            "UnBjLkZtaTJTdGF0dXMiUgoQU2V0U3RyaW5nUmVxdWVzdBIVCg1pbnN0YW5j",
+            "ZV9uYW1lGAEgASgJEicKBnZhbHVlcxgCIAEoCzIXLk1vZGVsaVJwYy5TdHJp",
+            "bmdWYWx1ZXMiOgoRU2V0U3RyaW5nUmVzcG9uc2USJQoGc3RhdHVzGAEgASgO",
+            "MhUuTW9kZWxpUnBjLkZtaTJTdGF0dXMiEgoQTmV3VmFsdWVzUmVxdWVzdCLU",
+            "AQoRTmV3VmFsdWVzUmVzcG9uc2USEQoJdGltZXN0YW1wGAEgASgBEicKCWlu",
+            "dFZhbHVlcxgCIAEoCzIULk1vZGVsaVJwYy5JbnRWYWx1ZXMSKQoKcmVhbFZh",
+            "bHVlcxgDIAEoCzIVLk1vZGVsaVJwYy5SZWFsVmFsdWVzEikKCmJvb2xWYWx1",
+            "ZXMYBCABKAsyFS5Nb2RlbGlScGMuQm9vbFZhbHVlcxItCgxzdHJpbmdWYWx1",
+            "ZXMYBSABKAsyFy5Nb2RlbGlScGMuU3RyaW5nVmFsdWVzIgwKCkxvZ1JlcXVl",
+            "c3QiXAoLTG9nUmVzcG9uc2USFQoNaW5zdGFuY2VfbmFtZRgBIAEoCRIlCgZz",
+            "dGF0dXMYAiABKA4yFS5Nb2RlbGlScGMuRm1pMlN0YXR1cxIPCgdtZXNzYWdl",
+            "GAMgASgJKm8KCkZtaTJTdGF0dXMSCwoHRk1JMl9PSxAAEhAKDEZNSTJfV0FS",
+            "TklORxABEhAKDEZNSTJfRElTQ0FSRBACEg4KCkZNSTJfRVJST1IQAxIOCgpG",
+            "TUkyX0ZBVEFMEAQSEAoMRk1JMl9QRU5ESU5HEAUyzwcKDU1vZGVsaUJhY2tl",
+            "bmQSNwoEUGxheRIWLk1vZGVsaVJwYy5QbGF5UmVxdWVzdBoXLk1vZGVsaVJw",
+            "Yy5QbGF5UmVzcG9uc2USQwoIUGxheUZhc3QSGi5Nb2RlbGlScGMuUGxheUZh",
+            "c3RSZXF1ZXN0GhsuTW9kZWxpUnBjLlBsYXlGYXN0UmVzcG9uc2USOgoFUGF1",
+            "c2USFy5Nb2RlbGlScGMuUGF1c2VSZXF1ZXN0GhguTW9kZWxpUnBjLlBhdXNl",
+            "UmVzcG9uc2USNwoEU3RvcBIWLk1vZGVsaVJwYy5TdG9wUmVxdWVzdBoXLk1v",
+            "ZGVsaVJwYy5TdG9wUmVzcG9uc2USPwoGQWRkRm11EhguTW9kZWxpUnBjLkFk",
+            "ZEZtdVJlcXVlc3QaGS5Nb2RlbGlScGMuQWRkRm11UmVzcG9uc2UoARJGCglS",
+            "ZW1vdmVGbXUSGy5Nb2RlbGlScGMuUmVtb3ZlRm11UmVxdWVzdBocLk1vZGVs",
+            "aVJwYy5SZW1vdmVGbXVSZXNwb25zZRJVCg5BZGRDaGFubmVsTGluaxIgLk1v",
+            "ZGVsaVJwYy5BZGRDaGFubmVsTGlua1JlcXVlc3QaIS5Nb2RlbGlScGMuQWRk",
+            "Q2hhbm5lbExpbmtSZXNwb25zZRJeChFSZW1vdmVDaGFubmVsTGluaxIjLk1v",
+            "ZGVsaVJwYy5SZW1vdmVDaGFubmVsTGlua1JlcXVlc3QaJC5Nb2RlbGlScGMu",
+            "UmVtb3ZlQ2hhbm5lbExpbmtSZXNwb25zZRI9CgZTZXRJbnQSGC5Nb2RlbGlS",
+            "cGMuU2V0SW50UmVxdWVzdBoZLk1vZGVsaVJwYy5TZXRJbnRSZXNwb25zZRJA",
+            "CgdTZXRSZWFsEhkuTW9kZWxpUnBjLlNldFJlYWxSZXF1ZXN0GhouTW9kZWxp",
+            "UnBjLlNldFJlYWxSZXNwb25zZRJACgdTZXRCb29sEhkuTW9kZWxpUnBjLlNl",
+            "dEJvb2xSZXF1ZXN0GhouTW9kZWxpUnBjLlNldEJvb2xSZXNwb25zZRJGCglT",
+            "ZXRTdHJpbmcSGy5Nb2RlbGlScGMuU2V0U3RyaW5nUmVxdWVzdBocLk1vZGVs",
+            "aVJwYy5TZXRTdHJpbmdSZXNwb25zZRJICglOZXdWYWx1ZXMSGy5Nb2RlbGlS",
+            "cGMuTmV3VmFsdWVzUmVxdWVzdBocLk1vZGVsaVJwYy5OZXdWYWx1ZXNSZXNw",
+            "b25zZTABEjYKA0xvZxIVLk1vZGVsaVJwYy5Mb2dSZXF1ZXN0GhYuTW9kZWxp",
+            "UnBjLkxvZ1Jlc3BvbnNlMAFiBnByb3RvMw=="));
       descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
           new pbr::FileDescriptor[] { },
           new pbr::GeneratedClrTypeInfo(new[] {typeof(global::ModeliRpc.Fmi2Status), }, new pbr::GeneratedClrTypeInfo[] {
@@ -106,7 +106,7 @@ namespace ModeliRpc {
             new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.PauseResponse), global::ModeliRpc.PauseResponse.Parser, null, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.StopRequest), global::ModeliRpc.StopRequest.Parser, null, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.StopResponse), global::ModeliRpc.StopResponse.Parser, new[]{ "Status" }, null, null, null),
-            new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.AddFmuRequest), global::ModeliRpc.AddFmuRequest.Parser, new[]{ "InstanceName", "Data" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.AddFmuRequest), global::ModeliRpc.AddFmuRequest.Parser, new[]{ "InstanceName", "Chunk" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.AddFmuResponse), global::ModeliRpc.AddFmuResponse.Parser, new[]{ "Success" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.RemoveFmuRequest), global::ModeliRpc.RemoveFmuRequest.Parser, new[]{ "InstanceName" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.RemoveFmuResponse), global::ModeliRpc.RemoveFmuResponse.Parser, new[]{ "Success" }, null, null, null),
@@ -183,7 +183,7 @@ namespace ModeliRpc {
       return new IntValues(this);
     }
 
-    /// <summary>Field number for the "valueRefs" field.</summary>
+    /// <summary>Field number for the "value_refs" field.</summary>
     public const int ValueRefsFieldNumber = 1;
     private static readonly pb::FieldCodec<uint> _repeated_valueRefs_codec
         = pb::FieldCodec.ForUInt32(10);
@@ -314,7 +314,7 @@ namespace ModeliRpc {
       return new RealValues(this);
     }
 
-    /// <summary>Field number for the "valueRefs" field.</summary>
+    /// <summary>Field number for the "value_refs" field.</summary>
     public const int ValueRefsFieldNumber = 1;
     private static readonly pb::FieldCodec<uint> _repeated_valueRefs_codec
         = pb::FieldCodec.ForUInt32(10);
@@ -445,7 +445,7 @@ namespace ModeliRpc {
       return new BoolValues(this);
     }
 
-    /// <summary>Field number for the "valueRefs" field.</summary>
+    /// <summary>Field number for the "value_refs" field.</summary>
     public const int ValueRefsFieldNumber = 1;
     private static readonly pb::FieldCodec<uint> _repeated_valueRefs_codec
         = pb::FieldCodec.ForUInt32(10);
@@ -579,7 +579,7 @@ namespace ModeliRpc {
       return new StringValues(this);
     }
 
-    /// <summary>Field number for the "valueRefs" field.</summary>
+    /// <summary>Field number for the "value_refs" field.</summary>
     public const int ValueRefsFieldNumber = 1;
     private static readonly pb::FieldCodec<uint> _repeated_valueRefs_codec
         = pb::FieldCodec.ForUInt32(10);
@@ -1788,7 +1788,7 @@ namespace ModeliRpc {
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public AddFmuRequest(AddFmuRequest other) : this() {
       instanceName_ = other.instanceName_;
-      data_ = other.data_;
+      chunk_ = other.chunk_;
     }
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -1807,14 +1807,14 @@ namespace ModeliRpc {
       }
     }
 
-    /// <summary>Field number for the "data" field.</summary>
-    public const int DataFieldNumber = 2;
-    private pb::ByteString data_ = pb::ByteString.Empty;
+    /// <summary>Field number for the "chunk" field.</summary>
+    public const int ChunkFieldNumber = 2;
+    private pb::ByteString chunk_ = pb::ByteString.Empty;
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
-    public pb::ByteString Data {
-      get { return data_; }
+    public pb::ByteString Chunk {
+      get { return chunk_; }
       set {
-        data_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+        chunk_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
       }
     }
 
@@ -1832,7 +1832,7 @@ namespace ModeliRpc {
         return true;
       }
       if (InstanceName != other.InstanceName) return false;
-      if (Data != other.Data) return false;
+      if (Chunk != other.Chunk) return false;
       return true;
     }
 
@@ -1840,7 +1840,7 @@ namespace ModeliRpc {
     public override int GetHashCode() {
       int hash = 1;
       if (InstanceName.Length != 0) hash ^= InstanceName.GetHashCode();
-      if (Data.Length != 0) hash ^= Data.GetHashCode();
+      if (Chunk.Length != 0) hash ^= Chunk.GetHashCode();
       return hash;
     }
 
@@ -1855,9 +1855,9 @@ namespace ModeliRpc {
         output.WriteRawTag(10);
         output.WriteString(InstanceName);
       }
-      if (Data.Length != 0) {
+      if (Chunk.Length != 0) {
         output.WriteRawTag(18);
-        output.WriteBytes(Data);
+        output.WriteBytes(Chunk);
       }
     }
 
@@ -1867,8 +1867,8 @@ namespace ModeliRpc {
       if (InstanceName.Length != 0) {
         size += 1 + pb::CodedOutputStream.ComputeStringSize(InstanceName);
       }
-      if (Data.Length != 0) {
-        size += 1 + pb::CodedOutputStream.ComputeBytesSize(Data);
+      if (Chunk.Length != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeBytesSize(Chunk);
       }
       return size;
     }
@@ -1881,8 +1881,8 @@ namespace ModeliRpc {
       if (other.InstanceName.Length != 0) {
         InstanceName = other.InstanceName;
       }
-      if (other.Data.Length != 0) {
-        Data = other.Data;
+      if (other.Chunk.Length != 0) {
+        Chunk = other.Chunk;
       }
     }
 
@@ -1899,7 +1899,7 @@ namespace ModeliRpc {
             break;
           }
           case 18: {
-            Data = input.ReadBytes();
+            Chunk = input.ReadBytes();
             break;
           }
         }
diff --git a/ModeliRpc_Cs/ModeliRpcGrpc.cs b/ModeliRpc_Cs/ModeliRpcGrpc.cs
index d4dcbdcb776c39e8fbb1b79aae7ce05d45eee263..6732d3f6d1cdaf60f271baf5bad02e81a6558647 100644
--- a/ModeliRpc_Cs/ModeliRpcGrpc.cs
+++ b/ModeliRpc_Cs/ModeliRpcGrpc.cs
@@ -158,7 +158,7 @@ namespace ModeliRpc {
     public abstract partial class ModeliBackendBase
     {
       /// <summary>
-      /// Simulation state control
+      /// Play the simulation infinetly in realtime
       /// </summary>
       /// <param name="request">The request received from the client.</param>
       /// <param name="context">The context of the server-side call handler being invoked.</param>
@@ -168,24 +168,41 @@ namespace ModeliRpc {
         throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
       }
 
+      /// <summary>
+      /// Play the simulation as fast as possible (fast forwad)
+      /// </summary>
+      /// <param name="request">The request received from the client.</param>
+      /// <param name="context">The context of the server-side call handler being invoked.</param>
+      /// <returns>The response to send back to the client (wrapped by a task).</returns>
       public virtual global::System.Threading.Tasks.Task<global::ModeliRpc.PlayFastResponse> PlayFast(global::ModeliRpc.PlayFastRequest request, grpc::ServerCallContext context)
       {
         throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
       }
 
+      /// <summary>
+      /// Pause the simulation without resetting it
+      /// </summary>
+      /// <param name="request">The request received from the client.</param>
+      /// <param name="context">The context of the server-side call handler being invoked.</param>
+      /// <returns>The response to send back to the client (wrapped by a task).</returns>
       public virtual global::System.Threading.Tasks.Task<global::ModeliRpc.PauseResponse> Pause(global::ModeliRpc.PauseRequest request, grpc::ServerCallContext context)
       {
         throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
       }
 
+      /// <summary>
+      /// Halt and reset the simulation
+      /// </summary>
+      /// <param name="request">The request received from the client.</param>
+      /// <param name="context">The context of the server-side call handler being invoked.</param>
+      /// <returns>The response to send back to the client (wrapped by a task).</returns>
       public virtual global::System.Threading.Tasks.Task<global::ModeliRpc.StopResponse> Stop(global::ModeliRpc.StopRequest request, grpc::ServerCallContext context)
       {
         throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
       }
 
       /// <summary>
-      /// Fmu management
-      /// Transfer FMU via stream and use chunking
+      /// Add a new Fmu to the simulation, transfer it via chunks
       /// </summary>
       /// <param name="requestStream">Used for reading requests from the client.</param>
       /// <param name="context">The context of the server-side call handler being invoked.</param>
@@ -195,13 +212,19 @@ namespace ModeliRpc {
         throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
       }
 
+      /// <summary>
+      /// Remove a Fmu from the simulation
+      /// </summary>
+      /// <param name="request">The request received from the client.</param>
+      /// <param name="context">The context of the server-side call handler being invoked.</param>
+      /// <returns>The response to send back to the client (wrapped by a task).</returns>
       public virtual global::System.Threading.Tasks.Task<global::ModeliRpc.RemoveFmuResponse> RemoveFmu(global::ModeliRpc.RemoveFmuRequest request, grpc::ServerCallContext context)
       {
         throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
       }
 
       /// <summary>
-      /// ChannelLink management
+      /// Add a ChannelLink to the simulation
       /// </summary>
       /// <param name="request">The request received from the client.</param>
       /// <param name="context">The context of the server-side call handler being invoked.</param>
@@ -211,13 +234,19 @@ namespace ModeliRpc {
         throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
       }
 
+      /// <summary>
+      /// Remove a ChannelLink from the simulation
+      /// </summary>
+      /// <param name="request">The request received from the client.</param>
+      /// <param name="context">The context of the server-side call handler being invoked.</param>
+      /// <returns>The response to send back to the client (wrapped by a task).</returns>
       public virtual global::System.Threading.Tasks.Task<global::ModeliRpc.RemoveChannelLinkResponse> RemoveChannelLink(global::ModeliRpc.RemoveChannelLinkRequest request, grpc::ServerCallContext context)
       {
         throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
       }
 
       /// <summary>
-      /// Transfer settable channel values
+      /// Set int values in one of the fmus
       /// </summary>
       /// <param name="request">The request received from the client.</param>
       /// <param name="context">The context of the server-side call handler being invoked.</param>
@@ -227,16 +256,34 @@ namespace ModeliRpc {
         throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
       }
 
+      /// <summary>
+      /// Set real values in one of the fmus
+      /// </summary>
+      /// <param name="request">The request received from the client.</param>
+      /// <param name="context">The context of the server-side call handler being invoked.</param>
+      /// <returns>The response to send back to the client (wrapped by a task).</returns>
       public virtual global::System.Threading.Tasks.Task<global::ModeliRpc.SetRealResponse> SetReal(global::ModeliRpc.SetRealRequest request, grpc::ServerCallContext context)
       {
         throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
       }
 
+      /// <summary>
+      /// Set bool values in one of the fmus
+      /// </summary>
+      /// <param name="request">The request received from the client.</param>
+      /// <param name="context">The context of the server-side call handler being invoked.</param>
+      /// <returns>The response to send back to the client (wrapped by a task).</returns>
       public virtual global::System.Threading.Tasks.Task<global::ModeliRpc.SetBoolResponse> SetBool(global::ModeliRpc.SetBoolRequest request, grpc::ServerCallContext context)
       {
         throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
       }
 
+      /// <summary>
+      /// Set string values in one of the fmus   
+      /// </summary>
+      /// <param name="request">The request received from the client.</param>
+      /// <param name="context">The context of the server-side call handler being invoked.</param>
+      /// <returns>The response to send back to the client (wrapped by a task).</returns>
       public virtual global::System.Threading.Tasks.Task<global::ModeliRpc.SetStringResponse> SetString(global::ModeliRpc.SetStringRequest request, grpc::ServerCallContext context)
       {
         throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
@@ -292,7 +339,7 @@ namespace ModeliRpc {
       }
 
       /// <summary>
-      /// Simulation state control
+      /// Play the simulation infinetly in realtime
       /// </summary>
       /// <param name="request">The request to send to the server.</param>
       /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
@@ -304,7 +351,7 @@ namespace ModeliRpc {
         return Play(request, new grpc::CallOptions(headers, deadline, cancellationToken));
       }
       /// <summary>
-      /// Simulation state control
+      /// Play the simulation infinetly in realtime
       /// </summary>
       /// <param name="request">The request to send to the server.</param>
       /// <param name="options">The options for the call.</param>
@@ -314,7 +361,7 @@ namespace ModeliRpc {
         return CallInvoker.BlockingUnaryCall(__Method_Play, null, options, request);
       }
       /// <summary>
-      /// Simulation state control
+      /// Play the simulation infinetly in realtime
       /// </summary>
       /// <param name="request">The request to send to the server.</param>
       /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
@@ -326,7 +373,7 @@ namespace ModeliRpc {
         return PlayAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
       }
       /// <summary>
-      /// Simulation state control
+      /// Play the simulation infinetly in realtime
       /// </summary>
       /// <param name="request">The request to send to the server.</param>
       /// <param name="options">The options for the call.</param>
@@ -335,57 +382,140 @@ namespace ModeliRpc {
       {
         return CallInvoker.AsyncUnaryCall(__Method_Play, null, options, request);
       }
+      /// <summary>
+      /// Play the simulation as fast as possible (fast forwad)
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
+      /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
+      /// <param name="cancellationToken">An optional token for canceling the call.</param>
+      /// <returns>The response received from the server.</returns>
       public virtual global::ModeliRpc.PlayFastResponse PlayFast(global::ModeliRpc.PlayFastRequest request, grpc::Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
       {
         return PlayFast(request, new grpc::CallOptions(headers, deadline, cancellationToken));
       }
+      /// <summary>
+      /// Play the simulation as fast as possible (fast forwad)
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="options">The options for the call.</param>
+      /// <returns>The response received from the server.</returns>
       public virtual global::ModeliRpc.PlayFastResponse PlayFast(global::ModeliRpc.PlayFastRequest request, grpc::CallOptions options)
       {
         return CallInvoker.BlockingUnaryCall(__Method_PlayFast, null, options, request);
       }
+      /// <summary>
+      /// Play the simulation as fast as possible (fast forwad)
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
+      /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
+      /// <param name="cancellationToken">An optional token for canceling the call.</param>
+      /// <returns>The call object.</returns>
       public virtual grpc::AsyncUnaryCall<global::ModeliRpc.PlayFastResponse> PlayFastAsync(global::ModeliRpc.PlayFastRequest request, grpc::Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
       {
         return PlayFastAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
       }
+      /// <summary>
+      /// Play the simulation as fast as possible (fast forwad)
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="options">The options for the call.</param>
+      /// <returns>The call object.</returns>
       public virtual grpc::AsyncUnaryCall<global::ModeliRpc.PlayFastResponse> PlayFastAsync(global::ModeliRpc.PlayFastRequest request, grpc::CallOptions options)
       {
         return CallInvoker.AsyncUnaryCall(__Method_PlayFast, null, options, request);
       }
+      /// <summary>
+      /// Pause the simulation without resetting it
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
+      /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
+      /// <param name="cancellationToken">An optional token for canceling the call.</param>
+      /// <returns>The response received from the server.</returns>
       public virtual global::ModeliRpc.PauseResponse Pause(global::ModeliRpc.PauseRequest request, grpc::Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
       {
         return Pause(request, new grpc::CallOptions(headers, deadline, cancellationToken));
       }
+      /// <summary>
+      /// Pause the simulation without resetting it
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="options">The options for the call.</param>
+      /// <returns>The response received from the server.</returns>
       public virtual global::ModeliRpc.PauseResponse Pause(global::ModeliRpc.PauseRequest request, grpc::CallOptions options)
       {
         return CallInvoker.BlockingUnaryCall(__Method_Pause, null, options, request);
       }
+      /// <summary>
+      /// Pause the simulation without resetting it
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
+      /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
+      /// <param name="cancellationToken">An optional token for canceling the call.</param>
+      /// <returns>The call object.</returns>
       public virtual grpc::AsyncUnaryCall<global::ModeliRpc.PauseResponse> PauseAsync(global::ModeliRpc.PauseRequest request, grpc::Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
       {
         return PauseAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
       }
+      /// <summary>
+      /// Pause the simulation without resetting it
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="options">The options for the call.</param>
+      /// <returns>The call object.</returns>
       public virtual grpc::AsyncUnaryCall<global::ModeliRpc.PauseResponse> PauseAsync(global::ModeliRpc.PauseRequest request, grpc::CallOptions options)
       {
         return CallInvoker.AsyncUnaryCall(__Method_Pause, null, options, request);
       }
+      /// <summary>
+      /// Halt and reset the simulation
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
+      /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
+      /// <param name="cancellationToken">An optional token for canceling the call.</param>
+      /// <returns>The response received from the server.</returns>
       public virtual global::ModeliRpc.StopResponse Stop(global::ModeliRpc.StopRequest request, grpc::Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
       {
         return Stop(request, new grpc::CallOptions(headers, deadline, cancellationToken));
       }
+      /// <summary>
+      /// Halt and reset the simulation
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="options">The options for the call.</param>
+      /// <returns>The response received from the server.</returns>
       public virtual global::ModeliRpc.StopResponse Stop(global::ModeliRpc.StopRequest request, grpc::CallOptions options)
       {
         return CallInvoker.BlockingUnaryCall(__Method_Stop, null, options, request);
       }
+      /// <summary>
+      /// Halt and reset the simulation
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
+      /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
+      /// <param name="cancellationToken">An optional token for canceling the call.</param>
+      /// <returns>The call object.</returns>
       public virtual grpc::AsyncUnaryCall<global::ModeliRpc.StopResponse> StopAsync(global::ModeliRpc.StopRequest request, grpc::Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
       {
         return StopAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
       }
+      /// <summary>
+      /// Halt and reset the simulation
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="options">The options for the call.</param>
+      /// <returns>The call object.</returns>
       public virtual grpc::AsyncUnaryCall<global::ModeliRpc.StopResponse> StopAsync(global::ModeliRpc.StopRequest request, grpc::CallOptions options)
       {
         return CallInvoker.AsyncUnaryCall(__Method_Stop, null, options, request);
       }
       /// <summary>
-      /// Fmu management
-      /// Transfer FMU via stream and use chunking
+      /// Add a new Fmu to the simulation, transfer it via chunks
       /// </summary>
       /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
       /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
@@ -396,8 +526,7 @@ namespace ModeliRpc {
         return AddFmu(new grpc::CallOptions(headers, deadline, cancellationToken));
       }
       /// <summary>
-      /// Fmu management
-      /// Transfer FMU via stream and use chunking
+      /// Add a new Fmu to the simulation, transfer it via chunks
       /// </summary>
       /// <param name="options">The options for the call.</param>
       /// <returns>The call object.</returns>
@@ -405,24 +534,52 @@ namespace ModeliRpc {
       {
         return CallInvoker.AsyncClientStreamingCall(__Method_AddFmu, null, options);
       }
+      /// <summary>
+      /// Remove a Fmu from the simulation
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
+      /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
+      /// <param name="cancellationToken">An optional token for canceling the call.</param>
+      /// <returns>The response received from the server.</returns>
       public virtual global::ModeliRpc.RemoveFmuResponse RemoveFmu(global::ModeliRpc.RemoveFmuRequest request, grpc::Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
       {
         return RemoveFmu(request, new grpc::CallOptions(headers, deadline, cancellationToken));
       }
+      /// <summary>
+      /// Remove a Fmu from the simulation
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="options">The options for the call.</param>
+      /// <returns>The response received from the server.</returns>
       public virtual global::ModeliRpc.RemoveFmuResponse RemoveFmu(global::ModeliRpc.RemoveFmuRequest request, grpc::CallOptions options)
       {
         return CallInvoker.BlockingUnaryCall(__Method_RemoveFmu, null, options, request);
       }
+      /// <summary>
+      /// Remove a Fmu from the simulation
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
+      /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
+      /// <param name="cancellationToken">An optional token for canceling the call.</param>
+      /// <returns>The call object.</returns>
       public virtual grpc::AsyncUnaryCall<global::ModeliRpc.RemoveFmuResponse> RemoveFmuAsync(global::ModeliRpc.RemoveFmuRequest request, grpc::Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
       {
         return RemoveFmuAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
       }
+      /// <summary>
+      /// Remove a Fmu from the simulation
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="options">The options for the call.</param>
+      /// <returns>The call object.</returns>
       public virtual grpc::AsyncUnaryCall<global::ModeliRpc.RemoveFmuResponse> RemoveFmuAsync(global::ModeliRpc.RemoveFmuRequest request, grpc::CallOptions options)
       {
         return CallInvoker.AsyncUnaryCall(__Method_RemoveFmu, null, options, request);
       }
       /// <summary>
-      /// ChannelLink management
+      /// Add a ChannelLink to the simulation
       /// </summary>
       /// <param name="request">The request to send to the server.</param>
       /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
@@ -434,7 +591,7 @@ namespace ModeliRpc {
         return AddChannelLink(request, new grpc::CallOptions(headers, deadline, cancellationToken));
       }
       /// <summary>
-      /// ChannelLink management
+      /// Add a ChannelLink to the simulation
       /// </summary>
       /// <param name="request">The request to send to the server.</param>
       /// <param name="options">The options for the call.</param>
@@ -444,7 +601,7 @@ namespace ModeliRpc {
         return CallInvoker.BlockingUnaryCall(__Method_AddChannelLink, null, options, request);
       }
       /// <summary>
-      /// ChannelLink management
+      /// Add a ChannelLink to the simulation
       /// </summary>
       /// <param name="request">The request to send to the server.</param>
       /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
@@ -456,7 +613,7 @@ namespace ModeliRpc {
         return AddChannelLinkAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
       }
       /// <summary>
-      /// ChannelLink management
+      /// Add a ChannelLink to the simulation
       /// </summary>
       /// <param name="request">The request to send to the server.</param>
       /// <param name="options">The options for the call.</param>
@@ -465,24 +622,52 @@ namespace ModeliRpc {
       {
         return CallInvoker.AsyncUnaryCall(__Method_AddChannelLink, null, options, request);
       }
+      /// <summary>
+      /// Remove a ChannelLink from the simulation
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
+      /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
+      /// <param name="cancellationToken">An optional token for canceling the call.</param>
+      /// <returns>The response received from the server.</returns>
       public virtual global::ModeliRpc.RemoveChannelLinkResponse RemoveChannelLink(global::ModeliRpc.RemoveChannelLinkRequest request, grpc::Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
       {
         return RemoveChannelLink(request, new grpc::CallOptions(headers, deadline, cancellationToken));
       }
+      /// <summary>
+      /// Remove a ChannelLink from the simulation
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="options">The options for the call.</param>
+      /// <returns>The response received from the server.</returns>
       public virtual global::ModeliRpc.RemoveChannelLinkResponse RemoveChannelLink(global::ModeliRpc.RemoveChannelLinkRequest request, grpc::CallOptions options)
       {
         return CallInvoker.BlockingUnaryCall(__Method_RemoveChannelLink, null, options, request);
       }
+      /// <summary>
+      /// Remove a ChannelLink from the simulation
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
+      /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
+      /// <param name="cancellationToken">An optional token for canceling the call.</param>
+      /// <returns>The call object.</returns>
       public virtual grpc::AsyncUnaryCall<global::ModeliRpc.RemoveChannelLinkResponse> RemoveChannelLinkAsync(global::ModeliRpc.RemoveChannelLinkRequest request, grpc::Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
       {
         return RemoveChannelLinkAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
       }
+      /// <summary>
+      /// Remove a ChannelLink from the simulation
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="options">The options for the call.</param>
+      /// <returns>The call object.</returns>
       public virtual grpc::AsyncUnaryCall<global::ModeliRpc.RemoveChannelLinkResponse> RemoveChannelLinkAsync(global::ModeliRpc.RemoveChannelLinkRequest request, grpc::CallOptions options)
       {
         return CallInvoker.AsyncUnaryCall(__Method_RemoveChannelLink, null, options, request);
       }
       /// <summary>
-      /// Transfer settable channel values
+      /// Set int values in one of the fmus
       /// </summary>
       /// <param name="request">The request to send to the server.</param>
       /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
@@ -494,7 +679,7 @@ namespace ModeliRpc {
         return SetInt(request, new grpc::CallOptions(headers, deadline, cancellationToken));
       }
       /// <summary>
-      /// Transfer settable channel values
+      /// Set int values in one of the fmus
       /// </summary>
       /// <param name="request">The request to send to the server.</param>
       /// <param name="options">The options for the call.</param>
@@ -504,7 +689,7 @@ namespace ModeliRpc {
         return CallInvoker.BlockingUnaryCall(__Method_SetInt, null, options, request);
       }
       /// <summary>
-      /// Transfer settable channel values
+      /// Set int values in one of the fmus
       /// </summary>
       /// <param name="request">The request to send to the server.</param>
       /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
@@ -516,7 +701,7 @@ namespace ModeliRpc {
         return SetIntAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
       }
       /// <summary>
-      /// Transfer settable channel values
+      /// Set int values in one of the fmus
       /// </summary>
       /// <param name="request">The request to send to the server.</param>
       /// <param name="options">The options for the call.</param>
@@ -525,50 +710,134 @@ namespace ModeliRpc {
       {
         return CallInvoker.AsyncUnaryCall(__Method_SetInt, null, options, request);
       }
+      /// <summary>
+      /// Set real values in one of the fmus
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
+      /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
+      /// <param name="cancellationToken">An optional token for canceling the call.</param>
+      /// <returns>The response received from the server.</returns>
       public virtual global::ModeliRpc.SetRealResponse SetReal(global::ModeliRpc.SetRealRequest request, grpc::Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
       {
         return SetReal(request, new grpc::CallOptions(headers, deadline, cancellationToken));
       }
+      /// <summary>
+      /// Set real values in one of the fmus
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="options">The options for the call.</param>
+      /// <returns>The response received from the server.</returns>
       public virtual global::ModeliRpc.SetRealResponse SetReal(global::ModeliRpc.SetRealRequest request, grpc::CallOptions options)
       {
         return CallInvoker.BlockingUnaryCall(__Method_SetReal, null, options, request);
       }
+      /// <summary>
+      /// Set real values in one of the fmus
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
+      /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
+      /// <param name="cancellationToken">An optional token for canceling the call.</param>
+      /// <returns>The call object.</returns>
       public virtual grpc::AsyncUnaryCall<global::ModeliRpc.SetRealResponse> SetRealAsync(global::ModeliRpc.SetRealRequest request, grpc::Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
       {
         return SetRealAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
       }
+      /// <summary>
+      /// Set real values in one of the fmus
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="options">The options for the call.</param>
+      /// <returns>The call object.</returns>
       public virtual grpc::AsyncUnaryCall<global::ModeliRpc.SetRealResponse> SetRealAsync(global::ModeliRpc.SetRealRequest request, grpc::CallOptions options)
       {
         return CallInvoker.AsyncUnaryCall(__Method_SetReal, null, options, request);
       }
+      /// <summary>
+      /// Set bool values in one of the fmus
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
+      /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
+      /// <param name="cancellationToken">An optional token for canceling the call.</param>
+      /// <returns>The response received from the server.</returns>
       public virtual global::ModeliRpc.SetBoolResponse SetBool(global::ModeliRpc.SetBoolRequest request, grpc::Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
       {
         return SetBool(request, new grpc::CallOptions(headers, deadline, cancellationToken));
       }
+      /// <summary>
+      /// Set bool values in one of the fmus
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="options">The options for the call.</param>
+      /// <returns>The response received from the server.</returns>
       public virtual global::ModeliRpc.SetBoolResponse SetBool(global::ModeliRpc.SetBoolRequest request, grpc::CallOptions options)
       {
         return CallInvoker.BlockingUnaryCall(__Method_SetBool, null, options, request);
       }
+      /// <summary>
+      /// Set bool values in one of the fmus
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
+      /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
+      /// <param name="cancellationToken">An optional token for canceling the call.</param>
+      /// <returns>The call object.</returns>
       public virtual grpc::AsyncUnaryCall<global::ModeliRpc.SetBoolResponse> SetBoolAsync(global::ModeliRpc.SetBoolRequest request, grpc::Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
       {
         return SetBoolAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
       }
+      /// <summary>
+      /// Set bool values in one of the fmus
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="options">The options for the call.</param>
+      /// <returns>The call object.</returns>
       public virtual grpc::AsyncUnaryCall<global::ModeliRpc.SetBoolResponse> SetBoolAsync(global::ModeliRpc.SetBoolRequest request, grpc::CallOptions options)
       {
         return CallInvoker.AsyncUnaryCall(__Method_SetBool, null, options, request);
       }
+      /// <summary>
+      /// Set string values in one of the fmus   
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
+      /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
+      /// <param name="cancellationToken">An optional token for canceling the call.</param>
+      /// <returns>The response received from the server.</returns>
       public virtual global::ModeliRpc.SetStringResponse SetString(global::ModeliRpc.SetStringRequest request, grpc::Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
       {
         return SetString(request, new grpc::CallOptions(headers, deadline, cancellationToken));
       }
+      /// <summary>
+      /// Set string values in one of the fmus   
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="options">The options for the call.</param>
+      /// <returns>The response received from the server.</returns>
       public virtual global::ModeliRpc.SetStringResponse SetString(global::ModeliRpc.SetStringRequest request, grpc::CallOptions options)
       {
         return CallInvoker.BlockingUnaryCall(__Method_SetString, null, options, request);
       }
+      /// <summary>
+      /// Set string values in one of the fmus   
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
+      /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
+      /// <param name="cancellationToken">An optional token for canceling the call.</param>
+      /// <returns>The call object.</returns>
       public virtual grpc::AsyncUnaryCall<global::ModeliRpc.SetStringResponse> SetStringAsync(global::ModeliRpc.SetStringRequest request, grpc::Metadata headers = null, DateTime? deadline = null, CancellationToken cancellationToken = default(CancellationToken))
       {
         return SetStringAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken));
       }
+      /// <summary>
+      /// Set string values in one of the fmus   
+      /// </summary>
+      /// <param name="request">The request to send to the server.</param>
+      /// <param name="options">The options for the call.</param>
+      /// <returns>The call object.</returns>
       public virtual grpc::AsyncUnaryCall<global::ModeliRpc.SetStringResponse> SetStringAsync(global::ModeliRpc.SetStringRequest request, grpc::CallOptions options)
       {
         return CallInvoker.AsyncUnaryCall(__Method_SetString, null, options, request);