diff --git a/jenkins.sh b/jenkins.sh
new file mode 100755
index 0000000000000000000000000000000000000000..19d690f90a80620d8680bdb1d3d4ea38877575e2
--- /dev/null
+++ b/jenkins.sh
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+# $WORKSPACE is the jenkins workspace, will be filled by jenkins
+
+export COMMON_MAKE_PATH="$WORKSPACE/../../generics/generic-makefiles"
+export SNAP7_BASE="$WORKSPACE/snap7/snap7-full"
+export BOOST_HOME="$WORKSPACE/../../generics/boost_1.54.0/boost/1.54.0"
+
+##############################################
+cd snap7
+./build.sh
+cd ..
+##############################################
+cd silecs-communication-cpp
+make all CPU=x86_64 -j4 
+cd ..
+##############################################
diff --git a/silecs-codegen/jenkins.sh b/silecs-codegen/jenkins.sh
new file mode 100755
index 0000000000000000000000000000000000000000..ec0824653036ec35619018b05ae91ef53b192791
--- /dev/null
+++ b/silecs-codegen/jenkins.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+#export COMMON_MAKE_PATH="$WORKSPACE/../../generics/generic-makefiles"
+#export SNAP7_BASE="$WORKSPACE/../snap7/snap7-full"
+#export BOOST_HOME="$WORKSPACE/../../generics/boost_1.54.0/boost/1.54.0"
+#make all CPU=x86_64 -j4 
+cd src/xml
+python runTests.py
diff --git a/silecs-codegen/src/xml/runTests.py b/silecs-codegen/src/xml/runTests.py
index bf970b4941cdf31f3a75a0669c53d4a19b24ad7b..47bbe88348dfa4c4b7267c02f2f98674db761738 100644
--- a/silecs-codegen/src/xml/runTests.py
+++ b/silecs-codegen/src/xml/runTests.py
@@ -42,6 +42,8 @@ def runTests():
     print "# Test suite finished - no failures detected ! #"
     print "################################################"
 
+    sys.exit(0)
+
 # ********************** module stand alone code **********************
 if __name__ == "__main__":
     runTests()
diff --git a/silecs-codegen/src/xml/test/generated_temp/.gitignore b/silecs-codegen/src/xml/test/generated_temp/.gitignore
index 606b71b4c3777b9e0930fe54a64d600d244d4211..c7d27160ef10b035a40944e5300f6e7f2c0095ae 100644
--- a/silecs-codegen/src/xml/test/generated_temp/.gitignore
+++ b/silecs-codegen/src/xml/test/generated_temp/.gitignore
@@ -1,6 +1,3 @@
-/AllTypes.cpp
-/AllTypes.h
-/AllTypesFESA.design
-/client/*
-/controller/*
-/wrapper/*
\ No newline at end of file
+AllTypes.cpp
+AllTypes.h
+AllTypesFESA.design
\ No newline at end of file
diff --git a/silecs-codegen/src/xml/test/generated_temp/AllTypes.cpp b/silecs-codegen/src/xml/test/generated_temp/AllTypes.cpp
deleted file mode 100644
index 08c4d7fdeb2770c38e2a0a86015a931c653292a8..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/AllTypes.cpp
+++ /dev/null
@@ -1,738 +0,0 @@
-/*
- * AllTypes.cpp
- *
- * Generated by SILECS framework tools 
- */
- 
-#include <AllTypes/Common/AllTypes.h>
-#include <fesa-core/Synchronization/NoneContext.h>
-#include <fesa-core/Synchronization/MultiplexingContext.h>
- 
-namespace AllTypes
-{
-    //Global objects of the SILECS class
-    Silecs::Service* AbstractAllTypes::pService_ = NULL;
-    Silecs::Cluster* AbstractAllTypes::pCluster_ = NULL;
-    bool AbstractAllTypes::isInitialized_ = false;
-
-    MyROBlock_Type	AllTypes::MyROBlock("MyROBlock");
-    MyRWBlock_Type	AllTypes::MyRWBlock("MyRWBlock");
-    MyWOBlock_Type	AllTypes::MyWOBlock("MyWOBlock");
-    
-    //-------------------------------------------------------------------------------------------------------------
-    // Constructor & Destructor methods
-    
-    AbstractAllTypes::AbstractAllTypes(std::string blockName): blockName_(blockName) {}
-    AbstractAllTypes::~AbstractAllTypes() {}
-    
-    MyROBlock_Type::MyROBlock_Type(std::string name): AbstractAllTypes(name) {}
-    MyROBlock_Type::~MyROBlock_Type() {}
-    
-    MyRWBlock_Type::MyRWBlock_Type(std::string name): AbstractAllTypes(name) {}
-    MyRWBlock_Type::~MyRWBlock_Type() {}
-    
-    MyWOBlock_Type::MyWOBlock_Type(std::string name): AbstractAllTypes(name) {}
-    MyWOBlock_Type::~MyWOBlock_Type() {}
-    
-    //---------------------------------------------------------------------------------------------------------
-    // Set-up the SILECS components for the AbstractAllTypes class (service & cluster)
-
-    void AbstractAllTypes::setup(const ServiceLocator* serviceLocator)
-    {
-        try
-        {
-            // Instantiate the singleton of the SILECS Service
-            pService_ = Silecs::Service::getInstance();
-
-            // Enable the SILECS diagnostic with user topics if any
-            pService_->setArguments(serviceLocator->getUsrCmdArgs());
-
-            // Instantiate the SILECS Cluster object for the given Class/Version
-            GlobalDevice* pGlobalDevice = serviceLocator->getGlobalDevice();
-            pCluster_ = pService_->getCluster( "AllTypes", pGlobalDevice->plcClassVersion.get());
-            isInitialized_ = true;
-
-            // Connect each PLC of the Cluster that is referred from the FESA instance
-            std::vector<Device*> pDeviceCol = serviceLocator->getDeviceCollection();
-            for(std::vector<Device*>::iterator pDeviceIter=pDeviceCol.begin(); pDeviceIter!= pDeviceCol.end(); pDeviceIter++)
-            {
-                Device* pDevice = *pDeviceIter;
-
-                // Retrieve the PLC related to the current FESA device
-                // (from 'plcHostName' FESA field defined on that purpose).
-                Silecs::PLC* pPLC = pCluster_->getPLC(pDevice->plcHostName.get(),pDevice->parameterFile.get());
-
-                // Update the PLC Slave registers from related FESA fields just before synchronising done at connection time
-                setPLCSlaveRegisters(pPLC, serviceLocator);
-
-                // Connect the PLC if not already connected
-                if (!pPLC->isEnabled())
-                {   pPLC->connect(/*synchroMode=*/Silecs::FULL_SYNCHRO, /*connectNow=*/true);
-                    if (pPLC->isConnected())
-                    {   // Update FESA fields from related PLC Master registers just after synchronising done at connection time
-                        getPLCMasterRegisters(pPLC, serviceLocator);
-                    }
-                }
-            }
-        }
-        catch (const Silecs::SilecsException& ex)
-        {
-            throw fesa::FesaException(__FILE__, __LINE__, ex.getMessage());
-        }
-    }
-
-    //---------------------------------------------------------------------------------------------------------
-    // Release all the SILECS resources
-    void AbstractAllTypes::cleanup()
-    {
-        // Attention! This method is responsible to stop all the PLC connections
-        // and to remove all the SILECS resources (Clusters and related components: PLCs, Devices, Registers, ..)
-        // Calling method must ensure that no process is currently accessing these resources before cleaning.
-        //
-        Silecs::Service::deleteInstance();
-    }
-
-    //---------------------------------------------------------------------------------------------------------
-    // Synchronise PLC SLAVE/MASTER registers and related FESA fields (automatically called by the setup method @connection time)
-    void AbstractAllTypes::setPLCSlaveRegisters(Silecs::PLC* pPLC, const ServiceLocator* serviceLocator)
-    {
-        fesa::NoneContext noneContext;
-    
-        AllTypes::MyWOBlock.setPLCDevices(pPLC, serviceLocator, false, &noneContext);
-    }
-
-    void AbstractAllTypes::getPLCMasterRegisters(Silecs::PLC* pPLC, const ServiceLocator* serviceLocator)
-    {
-        fesa::NoneContext noneContext;    //MASTER acquisition fields are not consistent, can be set with none-context
-    
-        AllTypes::MyROBlock.getPLCDevices(pPLC, serviceLocator, false, &noneContext);
-        AllTypes::MyRWBlock.getPLCDevices(pPLC, serviceLocator, false, &noneContext);
-    }
-    
-    //---------------------------------------------------------------------------------------------------------
-    // General methods to synchronize the FESA fields and related PLC registers of the FESA server
-    // with or without PLC side access (send/recv) if requested.
-    // get_ : [receive block from PLC +] update FESA fields with related PLC registers
-    // set_ : update PLC registers with related FESA fields [+ send block to PLC]
-
-    //---------------------------------------------------------------------------------------------------------
-
-    void AbstractAllTypes::getAllDevices(const ServiceLocator* serviceLocator, const bool recvNow, MultiplexingContext* pContext)
-    {
-        if (recvNow) theCluster()->recv(blockName_);
-
-        std::vector<Device*> deviceCol = serviceLocator->getDeviceCollection();
-        for(std::vector<Device*>::iterator pDeviceIter=deviceCol.begin(); pDeviceIter!= deviceCol.end(); pDeviceIter++)
-        {  getOneDevice(*pDeviceIter, false, pContext);
-        }
-    }
-
-    void AbstractAllTypes::getPLCDevices(Silecs::PLC* pPLC, const ServiceLocator* serviceLocator, const bool recvNow, MultiplexingContext* pContext)
-    {
-        if (recvNow) pPLC->recv(blockName_);
-
-        std::vector<Device*> deviceCol = serviceLocator->getDeviceCollection();
-        for(std::vector<Device*>::iterator pDeviceIter=deviceCol.begin(); pDeviceIter!= deviceCol.end(); pDeviceIter++)
-        {   if ((*pDeviceIter)->plcHostName.get() == pPLC->getName())
-            {  getOneDevice(*pDeviceIter, false, pContext);
-            }
-        }
-    }
-
-    void AbstractAllTypes::getSomeDevices(std::vector<Device*> deviceCol, const bool sendNow, MultiplexingContext* pContext)
-    {
-        for(std::vector<Device*>::iterator pDeviceIter=deviceCol.begin(); pDeviceIter!= deviceCol.end(); pDeviceIter++)
-        {    getOneDevice(*pDeviceIter, sendNow, pContext);
-        }
-    }
-
-    void AbstractAllTypes::getOneDevice(Device* pDevice, const bool recvNow, MultiplexingContext* pContext) {};
-
-    //---------------------------------------------------------------------------------------------------------
-
-    void AbstractAllTypes::setAllDevices(const ServiceLocator* serviceLocator, bool sendNow, MultiplexingContext* pContext)
-    {
-        std::vector<Device*> deviceCol = serviceLocator->getDeviceCollection();
-        for(std::vector<Device*>::iterator pDeviceIter=deviceCol.begin(); pDeviceIter!= deviceCol.end(); pDeviceIter++)
-        {  setOneDevice(*pDeviceIter, false, pContext);
-        }
-
-        if (sendNow) theCluster()->send(blockName_);
-    }
-
-    void AbstractAllTypes::setPLCDevices(Silecs::PLC* pPLC, const ServiceLocator* serviceLocator, bool sendNow, MultiplexingContext* pContext)
-    {
-        std::vector<Device*> deviceCol = serviceLocator->getDeviceCollection();
-        for(std::vector<Device*>::iterator pDeviceIter=deviceCol.begin(); pDeviceIter!= deviceCol.end(); pDeviceIter++)
-        {   if ((*pDeviceIter)->plcHostName.get() == pPLC->getName())
-            {  setOneDevice(*pDeviceIter, false, pContext);
-            }
-        }
-
-        if (sendNow) pPLC->send(blockName_);
-    }
-
-    void AbstractAllTypes::setSomeDevices(std::vector<Device*> deviceCol, bool sendNow, MultiplexingContext* pContext)
-    {
-        for(std::vector<Device*>::iterator pDeviceIter=deviceCol.begin(); pDeviceIter!= deviceCol.end(); pDeviceIter++)
-        {    setOneDevice(*pDeviceIter, sendNow, pContext);
-        }
-    }
-
-    void AbstractAllTypes::setOneDevice(Device* pDevice, const bool sendNow, MultiplexingContext* pContext) {};
-    
-    //---------------------------------------------------------------------------------------------------------
-    
-    void MyROBlock_Type::getOneDevice(Device* pDevice, const bool recvNow, MultiplexingContext* pContext)
-    {
-    	if( !isInitialized_ )
-    	{
-    		throw fesa::FesaException(__FILE__, __LINE__, "SILECS-Service not initialized yet - AllTypes::setup needs to be called before any plc-interaction can be done");
-    	}
-        Silecs::PLC* pPLC  = pCluster_->getPLC(pDevice->plcHostName.get(),pDevice->parameterFile.get());
-        Silecs::Device* pPLCDevice = pPLC->getDevice(pDevice->plcDeviceLabel.get());
-        Silecs::Register*  pRegister = NULL;
-
-        if (recvNow) pPLCDevice -> recv(blockName_);        
-    
-        pDevice->RO_int8.set( pPLCDevice->getRegister("RO_int8")->getValInt8(), pContext);
-        pDevice->RO_uint8.set( pPLCDevice->getRegister("RO_uint8")->getValUInt8(), pContext);
-        pDevice->RO_int16.set( pPLCDevice->getRegister("RO_int16")->getValInt16(), pContext);
-        pDevice->RO_uint16.set( pPLCDevice->getRegister("RO_uint16")->getValUInt16(), pContext);
-        pDevice->RO_int32.set( pPLCDevice->getRegister("RO_int32")->getValInt32(), pContext);
-        pDevice->RO_uint32.set( pPLCDevice->getRegister("RO_uint32")->getValUInt32(), pContext);
-        pDevice->RO_float32.set( pPLCDevice->getRegister("RO_float32")->getValFloat32(), pContext);
-        pRegister = pPLCDevice->getRegister("RO_string");
-        pDevice->RO_string.set(pRegister->getValString().c_str(), pContext);
-
-        pDevice->RO_date.set( pPLCDevice->getRegister("RO_date")->getValDate(), pContext);
-        pDevice->RO_char.set( pPLCDevice->getRegister("RO_char")->getValInt8(), pContext);
-        pDevice->RO_byte.set( pPLCDevice->getRegister("RO_byte")->getValUInt8(), pContext);
-        pDevice->RO_word.set( pPLCDevice->getRegister("RO_word")->getValUInt16(), pContext);
-        pDevice->RO_dword.set( pPLCDevice->getRegister("RO_dword")->getValUInt32(), pContext);
-        pDevice->RO_int.set( pPLCDevice->getRegister("RO_int")->getValInt16(), pContext);
-        pDevice->RO_dint.set( pPLCDevice->getRegister("RO_dint")->getValInt32(), pContext);
-        pDevice->RO_real.set( pPLCDevice->getRegister("RO_real")->getValFloat32(), pContext);
-        pDevice->RO_dt.set( pPLCDevice->getRegister("RO_dt")->getValDate(), pContext);
-	}
-    void MyRWBlock_Type::getOneDevice(Device* pDevice, const bool recvNow, MultiplexingContext* pContext)
-    {
-    	if( !isInitialized_ )
-    	{
-    		throw fesa::FesaException(__FILE__, __LINE__, "SILECS-Service not initialized yet - AllTypes::setup needs to be called before any plc-interaction can be done");
-    	}
-        Silecs::PLC* pPLC  = pCluster_->getPLC(pDevice->plcHostName.get(),pDevice->parameterFile.get());
-        Silecs::Device* pPLCDevice = pPLC->getDevice(pDevice->plcDeviceLabel.get());
-        Silecs::Register*  pRegister = NULL;
-        uint32_t dim1 = 1;
-        uint32_t dim2 = 1;
-
-        if (recvNow) pPLCDevice -> recv(blockName_);        
-    
-        pRegister = pPLCDevice->getRegister("RW_int8");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        pDevice->RW_int8.set(pRegister->getRefInt8Array2D(dim1, dim2), dim1, dim2, pContext);
-
-        pRegister = pPLCDevice->getRegister("RW_uint8");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        int16_t* RW_uint8 = (int16_t*)calloc(dim1*dim2, sizeof(int16_t));
-        pRegister->getValUInt8Array2D(RW_uint8, dim1, dim2);	//use automatic conversion for JAVA non-supported type
-        pDevice->RW_uint8.set(RW_uint8, dim1, dim2, pContext);
-    free(RW_uint8);
-
-        pRegister = pPLCDevice->getRegister("RW_int16");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        pDevice->RW_int16.set(pRegister->getRefInt16Array2D(dim1, dim2), dim1, dim2, pContext);
-
-        pRegister = pPLCDevice->getRegister("RW_uint16");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        int32_t* RW_uint16 = (int32_t*)calloc(dim1*dim2, sizeof(int32_t));
-        pRegister->getValUInt16Array2D(RW_uint16, dim1, dim2);	//use automatic conversion for JAVA non-supported type
-        pDevice->RW_uint16.set(RW_uint16, dim1, dim2, pContext);
-    free(RW_uint16);
-
-        pRegister = pPLCDevice->getRegister("RW_int32");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        pDevice->RW_int32.set(pRegister->getRefInt32Array2D(dim1, dim2), dim1, dim2, pContext);
-
-        pRegister = pPLCDevice->getRegister("RW_uint32");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        int64_t* RW_uint32 = (int64_t*)calloc(dim1*dim2, sizeof(int64_t));
-        pRegister->getValUInt32Array2D(RW_uint32, dim1, dim2);	//use automatic conversion for JAVA non-supported type
-        pDevice->RW_uint32.set(RW_uint32, dim1, dim2, pContext);
-    free(RW_uint32);
-
-        pRegister = pPLCDevice->getRegister("RW_float32");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        pDevice->RW_float32.set(pRegister->getRefFloat32Array2D(dim1, dim2), dim1, dim2, pContext);
-
-        pRegister = pPLCDevice->getRegister("RW_date");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        pDevice->RW_date.set(pRegister->getRefDateArray2D(dim1, dim2), dim1, dim2, pContext);
-
-        pRegister = pPLCDevice->getRegister("RW_char");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        pDevice->RW_char.set(pRegister->getRefInt8Array2D(dim1, dim2), dim1, dim2, pContext);
-
-        pRegister = pPLCDevice->getRegister("RW_byte");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        int16_t* RW_byte = (int16_t*)calloc(dim1*dim2, sizeof(int16_t));
-        pRegister->getValUInt8Array2D(RW_byte, dim1, dim2);	//use automatic conversion for JAVA non-supported type
-        pDevice->RW_byte.set(RW_byte, dim1, dim2, pContext);
-    free(RW_byte);
-
-        pRegister = pPLCDevice->getRegister("RW_word");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        int32_t* RW_word = (int32_t*)calloc(dim1*dim2, sizeof(int32_t));
-        pRegister->getValUInt16Array2D(RW_word, dim1, dim2);	//use automatic conversion for JAVA non-supported type
-        pDevice->RW_word.set(RW_word, dim1, dim2, pContext);
-    free(RW_word);
-
-        pRegister = pPLCDevice->getRegister("RW_dword");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        int64_t* RW_dword = (int64_t*)calloc(dim1*dim2, sizeof(int64_t));
-        pRegister->getValUInt32Array2D(RW_dword, dim1, dim2);	//use automatic conversion for JAVA non-supported type
-        pDevice->RW_dword.set(RW_dword, dim1, dim2, pContext);
-    free(RW_dword);
-
-        pRegister = pPLCDevice->getRegister("RW_int");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        pDevice->RW_int.set(pRegister->getRefInt16Array2D(dim1, dim2), dim1, dim2, pContext);
-
-        pRegister = pPLCDevice->getRegister("RW_dint");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        pDevice->RW_dint.set(pRegister->getRefInt32Array2D(dim1, dim2), dim1, dim2, pContext);
-
-        pRegister = pPLCDevice->getRegister("RW_real");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        pDevice->RW_real.set(pRegister->getRefFloat32Array2D(dim1, dim2), dim1, dim2, pContext);
-
-        pRegister = pPLCDevice->getRegister("RW_dt");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        pDevice->RW_dt.set(pRegister->getRefDateArray2D(dim1, dim2), dim1, dim2, pContext);
-
-	}    
-    void MyRWBlock_Type::setOneDevice(Device* pDevice, const bool sendNow, MultiplexingContext* pContext)
-    {
-    	if( !isInitialized_ )
-    	{
-    		throw fesa::FesaException(__FILE__, __LINE__, "SILECS-Service not initialized yet - AllTypes::setup needs to be called before any plc-interaction can be done");
-    	}
-        Silecs::PLC* pPLC  = pCluster_->getPLC(pDevice->plcHostName.get(),pDevice->parameterFile.get());
-        Silecs::Device* pPLCDevice = pPLC->getDevice(pDevice->plcDeviceLabel.get());
-        Silecs::Register*  pRegister = NULL;
-        uint32_t dim1 = 1;
-        uint32_t fesaDim1;
-        uint32_t dim2 = 1;
-        uint32_t fesaDim2;
-
-
-    pRegister = pPLCDevice->getRegister("RW_int8");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        pRegister->setValInt8Array2D(pDevice->RW_int8.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
-
-        pRegister = pPLCDevice->getRegister("RW_uint8");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        pRegister->setValUInt8Array2D( pDevice->RW_uint8.get(fesaDim1, fesaDim2, pContext), dim1, dim2);	//use automatic conversion for JAVA non-supported type
-
-    pRegister = pPLCDevice->getRegister("RW_int16");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        pRegister->setValInt16Array2D(pDevice->RW_int16.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
-
-        pRegister = pPLCDevice->getRegister("RW_uint16");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        pRegister->setValUInt16Array2D( pDevice->RW_uint16.get(fesaDim1, fesaDim2, pContext), dim1, dim2);	//use automatic conversion for JAVA non-supported type
-
-    pRegister = pPLCDevice->getRegister("RW_int32");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        pRegister->setValInt32Array2D(pDevice->RW_int32.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
-
-        pRegister = pPLCDevice->getRegister("RW_uint32");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        pRegister->setValUInt32Array2D( pDevice->RW_uint32.get(fesaDim1, fesaDim2, pContext), dim1, dim2);	//use automatic conversion for JAVA non-supported type
-
-    pRegister = pPLCDevice->getRegister("RW_float32");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        pRegister->setValFloat32Array2D(pDevice->RW_float32.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
-
-    pRegister = pPLCDevice->getRegister("RW_date");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        pRegister->setValDateArray2D(pDevice->RW_date.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
-
-    pRegister = pPLCDevice->getRegister("RW_char");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        pRegister->setValInt8Array2D(pDevice->RW_char.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
-
-        pRegister = pPLCDevice->getRegister("RW_byte");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        pRegister->setValUInt8Array2D( pDevice->RW_byte.get(fesaDim1, fesaDim2, pContext), dim1, dim2);	//use automatic conversion for JAVA non-supported type
-
-        pRegister = pPLCDevice->getRegister("RW_word");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        pRegister->setValUInt16Array2D( pDevice->RW_word.get(fesaDim1, fesaDim2, pContext), dim1, dim2);	//use automatic conversion for JAVA non-supported type
-
-        pRegister = pPLCDevice->getRegister("RW_dword");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        pRegister->setValUInt32Array2D( pDevice->RW_dword.get(fesaDim1, fesaDim2, pContext), dim1, dim2);	//use automatic conversion for JAVA non-supported type
-
-    pRegister = pPLCDevice->getRegister("RW_int");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        pRegister->setValInt16Array2D(pDevice->RW_int.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
-
-    pRegister = pPLCDevice->getRegister("RW_dint");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        pRegister->setValInt32Array2D(pDevice->RW_dint.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
-
-    pRegister = pPLCDevice->getRegister("RW_real");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        pRegister->setValFloat32Array2D(pDevice->RW_real.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
-
-    pRegister = pPLCDevice->getRegister("RW_dt");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        pRegister->setValDateArray2D(pDevice->RW_dt.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
-
-        if (sendNow) pPLCDevice->send(blockName_);
-
-	}
-    void MyRWBlock_Type::setOneDevice(Device* pDevice, MyRWBlockPropertyData& data, bool sendNow, MultiplexingContext* pContext)
-    {
-    	if( !isInitialized_ )
-    	{
-    		throw fesa::FesaException(__FILE__, __LINE__, "SILECS-Service not initialized yet - AllTypes::setup needs to be called before any plc-interaction can be done");
-    	}
-        Silecs::PLC* pPLC = pCluster_->getPLC(pDevice->plcHostName.get(),pDevice->parameterFile.get());
-        Silecs::Device* pPLCDevice = pPLC->getDevice(pDevice->plcDeviceLabel.get());
-        Silecs::Register*  pRegister = NULL;
-        uint32_t dim1 = 1;
-        uint32_t fesaDim1;
-        uint32_t dim2 = 1;
-        uint32_t fesaDim2;
-
-
-        pRegister = pPLCDevice->getRegister("RW_int8");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        (data.isRW_int8Available()) ? pRegister->setValInt8Array2D(data.RW_int8.get(fesaDim1, fesaDim2), dim1, dim2) :
-                                     pRegister->setValInt8Array2D(pDevice->RW_int8.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
-
-        pRegister = pPLCDevice->getRegister("RW_uint8");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        (data.isRW_uint8Available()) ? pRegister->setValUInt8Array2D(data.RW_uint8.get(fesaDim1, fesaDim2), dim1, dim2) :
-                                     pRegister->setValUInt8Array2D(pDevice->RW_uint8.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
-
-        pRegister = pPLCDevice->getRegister("RW_int16");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        (data.isRW_int16Available()) ? pRegister->setValInt16Array2D(data.RW_int16.get(fesaDim1, fesaDim2), dim1, dim2) :
-                                     pRegister->setValInt16Array2D(pDevice->RW_int16.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
-
-        pRegister = pPLCDevice->getRegister("RW_uint16");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        (data.isRW_uint16Available()) ? pRegister->setValUInt16Array2D(data.RW_uint16.get(fesaDim1, fesaDim2), dim1, dim2) :
-                                     pRegister->setValUInt16Array2D(pDevice->RW_uint16.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
-
-        pRegister = pPLCDevice->getRegister("RW_int32");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        (data.isRW_int32Available()) ? pRegister->setValInt32Array2D(data.RW_int32.get(fesaDim1, fesaDim2), dim1, dim2) :
-                                     pRegister->setValInt32Array2D(pDevice->RW_int32.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
-
-        pRegister = pPLCDevice->getRegister("RW_uint32");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        (data.isRW_uint32Available()) ? pRegister->setValUInt32Array2D(data.RW_uint32.get(fesaDim1, fesaDim2), dim1, dim2) :
-                                     pRegister->setValUInt32Array2D(pDevice->RW_uint32.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
-
-        pRegister = pPLCDevice->getRegister("RW_float32");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        (data.isRW_float32Available()) ? pRegister->setValFloat32Array2D(data.RW_float32.get(fesaDim1, fesaDim2), dim1, dim2) :
-                                     pRegister->setValFloat32Array2D(pDevice->RW_float32.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
-
-        pRegister = pPLCDevice->getRegister("RW_date");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        (data.isRW_dateAvailable()) ? pRegister->setValDateArray2D(data.RW_date.get(fesaDim1, fesaDim2), dim1, dim2) :
-                                     pRegister->setValDateArray2D(pDevice->RW_date.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
-
-        pRegister = pPLCDevice->getRegister("RW_char");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        (data.isRW_charAvailable()) ? pRegister->setValInt8Array2D(data.RW_char.get(fesaDim1, fesaDim2), dim1, dim2) :
-                                     pRegister->setValInt8Array2D(pDevice->RW_char.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
-
-        pRegister = pPLCDevice->getRegister("RW_byte");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        (data.isRW_byteAvailable()) ? pRegister->setValUInt8Array2D(data.RW_byte.get(fesaDim1, fesaDim2), dim1, dim2) :
-                                     pRegister->setValUInt8Array2D(pDevice->RW_byte.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
-
-        pRegister = pPLCDevice->getRegister("RW_word");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        (data.isRW_wordAvailable()) ? pRegister->setValUInt16Array2D(data.RW_word.get(fesaDim1, fesaDim2), dim1, dim2) :
-                                     pRegister->setValUInt16Array2D(pDevice->RW_word.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
-
-        pRegister = pPLCDevice->getRegister("RW_dword");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        (data.isRW_dwordAvailable()) ? pRegister->setValUInt32Array2D(data.RW_dword.get(fesaDim1, fesaDim2), dim1, dim2) :
-                                     pRegister->setValUInt32Array2D(pDevice->RW_dword.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
-
-        pRegister = pPLCDevice->getRegister("RW_int");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        (data.isRW_intAvailable()) ? pRegister->setValInt16Array2D(data.RW_int.get(fesaDim1, fesaDim2), dim1, dim2) :
-                                     pRegister->setValInt16Array2D(pDevice->RW_int.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
-
-        pRegister = pPLCDevice->getRegister("RW_dint");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        (data.isRW_dintAvailable()) ? pRegister->setValInt32Array2D(data.RW_dint.get(fesaDim1, fesaDim2), dim1, dim2) :
-                                     pRegister->setValInt32Array2D(pDevice->RW_dint.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
-
-        pRegister = pPLCDevice->getRegister("RW_real");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        (data.isRW_realAvailable()) ? pRegister->setValFloat32Array2D(data.RW_real.get(fesaDim1, fesaDim2), dim1, dim2) :
-                                     pRegister->setValFloat32Array2D(pDevice->RW_real.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
-
-        pRegister = pPLCDevice->getRegister("RW_dt");
-        dim1 = pRegister->getDimension1();
-        dim2 = pRegister->getDimension2();
-        (data.isRW_dtAvailable()) ? pRegister->setValDateArray2D(data.RW_dt.get(fesaDim1, fesaDim2), dim1, dim2) :
-                                     pRegister->setValDateArray2D(pDevice->RW_dt.get(fesaDim1, fesaDim2, pContext), dim1, dim2);
-
-        if (sendNow) pPLCDevice->send(blockName_);
-
-	}
-    
-    void MyWOBlock_Type::setOneDevice(Device* pDevice, const bool sendNow, MultiplexingContext* pContext)
-    {
-    	if( !isInitialized_ )
-    	{
-    		throw fesa::FesaException(__FILE__, __LINE__, "SILECS-Service not initialized yet - AllTypes::setup needs to be called before any plc-interaction can be done");
-    	}
-        Silecs::PLC* pPLC  = pCluster_->getPLC(pDevice->plcHostName.get(),pDevice->parameterFile.get());
-        Silecs::Device* pPLCDevice = pPLC->getDevice(pDevice->plcDeviceLabel.get());
-        Silecs::Register*  pRegister = NULL;
-        uint32_t dim1 = 1;
-        uint32_t fesaDim1;
-
-
-        pRegister = pPLCDevice->getRegister("WO_int8");
-            dim1 = pRegister->getDimension1();
-            pRegister->setValInt8Array(pDevice->WO_int8.get(fesaDim1, pContext), dim1);
-    
-        pRegister = pPLCDevice->getRegister("WO_uint8");
-        dim1 = pRegister->getDimension1();
-        pRegister->setValUInt8Array(pDevice->WO_uint8.get(fesaDim1, pContext), dim1);	//use automatic conversion for JAVA non-supported type
-
-        pRegister = pPLCDevice->getRegister("WO_int16");
-            dim1 = pRegister->getDimension1();
-            pRegister->setValInt16Array(pDevice->WO_int16.get(fesaDim1, pContext), dim1);
-    
-        pRegister = pPLCDevice->getRegister("WO_uint16");
-        dim1 = pRegister->getDimension1();
-        pRegister->setValUInt16Array(pDevice->WO_uint16.get(fesaDim1, pContext), dim1);	//use automatic conversion for JAVA non-supported type
-
-        pRegister = pPLCDevice->getRegister("WO_int32");
-            dim1 = pRegister->getDimension1();
-            pRegister->setValInt32Array(pDevice->WO_int32.get(fesaDim1, pContext), dim1);
-    
-        pRegister = pPLCDevice->getRegister("WO_uint32");
-        dim1 = pRegister->getDimension1();
-        pRegister->setValUInt32Array(pDevice->WO_uint32.get(fesaDim1, pContext), dim1);	//use automatic conversion for JAVA non-supported type
-
-        pRegister = pPLCDevice->getRegister("WO_float32");
-            dim1 = pRegister->getDimension1();
-            pRegister->setValFloat32Array(pDevice->WO_float32.get(fesaDim1, pContext), dim1);
-    
-        {
-        pRegister = pPLCDevice->getRegister("WO_string");
-        dim1 = pRegister->getDimension1();
-        std::string stdStringArray[dim1];
-        const char** cStringArray = pDevice->WO_string.get(fesaDim1, pContext);
-        for (unsigned int i=0; i<dim1; i++) stdStringArray[i] = (const char*)cStringArray[i];
-        pRegister->setValStringArray(stdStringArray, dim1);
-        }
-
-        pRegister = pPLCDevice->getRegister("WO_date");
-            dim1 = pRegister->getDimension1();
-            pRegister->setValDateArray(pDevice->WO_date.get(fesaDim1, pContext), dim1);
-    
-        pRegister = pPLCDevice->getRegister("WO_char");
-            dim1 = pRegister->getDimension1();
-            pRegister->setValInt8Array(pDevice->WO_char.get(fesaDim1, pContext), dim1);
-    
-        pRegister = pPLCDevice->getRegister("WO_byte");
-        dim1 = pRegister->getDimension1();
-        pRegister->setValUInt8Array(pDevice->WO_byte.get(fesaDim1, pContext), dim1);	//use automatic conversion for JAVA non-supported type
-
-        pRegister = pPLCDevice->getRegister("WO_word");
-        dim1 = pRegister->getDimension1();
-        pRegister->setValUInt16Array(pDevice->WO_word.get(fesaDim1, pContext), dim1);	//use automatic conversion for JAVA non-supported type
-
-        pRegister = pPLCDevice->getRegister("WO_dword");
-        dim1 = pRegister->getDimension1();
-        pRegister->setValUInt32Array(pDevice->WO_dword.get(fesaDim1, pContext), dim1);	//use automatic conversion for JAVA non-supported type
-
-        pRegister = pPLCDevice->getRegister("WO_int");
-            dim1 = pRegister->getDimension1();
-            pRegister->setValInt16Array(pDevice->WO_int.get(fesaDim1, pContext), dim1);
-    
-        pRegister = pPLCDevice->getRegister("WO_dint");
-            dim1 = pRegister->getDimension1();
-            pRegister->setValInt32Array(pDevice->WO_dint.get(fesaDim1, pContext), dim1);
-    
-        pRegister = pPLCDevice->getRegister("WO_real");
-            dim1 = pRegister->getDimension1();
-            pRegister->setValFloat32Array(pDevice->WO_real.get(fesaDim1, pContext), dim1);
-    
-        pRegister = pPLCDevice->getRegister("WO_dt");
-            dim1 = pRegister->getDimension1();
-            pRegister->setValDateArray(pDevice->WO_dt.get(fesaDim1, pContext), dim1);
-    
-        if (sendNow) pPLCDevice->send(blockName_);
-
-	}
-    void MyWOBlock_Type::setOneDevice(Device* pDevice, MyWOBlockPropertyData& data, bool sendNow, MultiplexingContext* pContext)
-    {
-    	if( !isInitialized_ )
-    	{
-    		throw fesa::FesaException(__FILE__, __LINE__, "SILECS-Service not initialized yet - AllTypes::setup needs to be called before any plc-interaction can be done");
-    	}
-        Silecs::PLC* pPLC = pCluster_->getPLC(pDevice->plcHostName.get(),pDevice->parameterFile.get());
-        Silecs::Device* pPLCDevice = pPLC->getDevice(pDevice->plcDeviceLabel.get());
-        Silecs::Register*  pRegister = NULL;
-        uint32_t dim1 = 1;
-        uint32_t fesaDim1;
-
-
-        pRegister = pPLCDevice->getRegister("WO_int8");
-            dim1 = pRegister->getDimension1();
-            (data.isWO_int8Available()) ? pRegister->setValInt8Array( data.WO_int8.get(fesaDim1), dim1) :
-                                         pRegister->setValInt8Array( pDevice->WO_int8.get(fesaDim1, pContext), dim1);
-    
-        pRegister = pPLCDevice->getRegister("WO_uint8");
-            dim1 = pRegister->getDimension1();
-            (data.isWO_uint8Available()) ? pRegister->setValUInt8Array( data.WO_uint8.get(fesaDim1), dim1) :
-                                         pRegister->setValUInt8Array( pDevice->WO_uint8.get(fesaDim1, pContext), dim1);
-    
-        pRegister = pPLCDevice->getRegister("WO_int16");
-            dim1 = pRegister->getDimension1();
-            (data.isWO_int16Available()) ? pRegister->setValInt16Array( data.WO_int16.get(fesaDim1), dim1) :
-                                         pRegister->setValInt16Array( pDevice->WO_int16.get(fesaDim1, pContext), dim1);
-    
-        pRegister = pPLCDevice->getRegister("WO_uint16");
-            dim1 = pRegister->getDimension1();
-            (data.isWO_uint16Available()) ? pRegister->setValUInt16Array( data.WO_uint16.get(fesaDim1), dim1) :
-                                         pRegister->setValUInt16Array( pDevice->WO_uint16.get(fesaDim1, pContext), dim1);
-    
-        pRegister = pPLCDevice->getRegister("WO_int32");
-            dim1 = pRegister->getDimension1();
-            (data.isWO_int32Available()) ? pRegister->setValInt32Array( data.WO_int32.get(fesaDim1), dim1) :
-                                         pRegister->setValInt32Array( pDevice->WO_int32.get(fesaDim1, pContext), dim1);
-    
-        pRegister = pPLCDevice->getRegister("WO_uint32");
-            dim1 = pRegister->getDimension1();
-            (data.isWO_uint32Available()) ? pRegister->setValUInt32Array( data.WO_uint32.get(fesaDim1), dim1) :
-                                         pRegister->setValUInt32Array( pDevice->WO_uint32.get(fesaDim1, pContext), dim1);
-    
-        pRegister = pPLCDevice->getRegister("WO_float32");
-            dim1 = pRegister->getDimension1();
-            (data.isWO_float32Available()) ? pRegister->setValFloat32Array( data.WO_float32.get(fesaDim1), dim1) :
-                                         pRegister->setValFloat32Array( pDevice->WO_float32.get(fesaDim1, pContext), dim1);
-    
-        {
-        pRegister = pPLCDevice->getRegister("WO_string");
-        dim1 = pRegister->getDimension1();
-        std::string stdStringArray[dim1];
-        const char** cStringArray = (data.isWO_stringAvailable() ? data.WO_string.get(fesaDim1) : pDevice->WO_string.get(fesaDim1, pContext));
-        for (unsigned int i=0; i<dim1; i++) stdStringArray[i] = (const char*)cStringArray[i];
-        pRegister->setValStringArray(stdStringArray, dim1);
-        }
-
-        pRegister = pPLCDevice->getRegister("WO_date");
-            dim1 = pRegister->getDimension1();
-            (data.isWO_dateAvailable()) ? pRegister->setValDateArray( data.WO_date.get(fesaDim1), dim1) :
-                                         pRegister->setValDateArray( pDevice->WO_date.get(fesaDim1, pContext), dim1);
-    
-        pRegister = pPLCDevice->getRegister("WO_char");
-            dim1 = pRegister->getDimension1();
-            (data.isWO_charAvailable()) ? pRegister->setValInt8Array( data.WO_char.get(fesaDim1), dim1) :
-                                         pRegister->setValInt8Array( pDevice->WO_char.get(fesaDim1, pContext), dim1);
-    
-        pRegister = pPLCDevice->getRegister("WO_byte");
-            dim1 = pRegister->getDimension1();
-            (data.isWO_byteAvailable()) ? pRegister->setValUInt8Array( data.WO_byte.get(fesaDim1), dim1) :
-                                         pRegister->setValUInt8Array( pDevice->WO_byte.get(fesaDim1, pContext), dim1);
-    
-        pRegister = pPLCDevice->getRegister("WO_word");
-            dim1 = pRegister->getDimension1();
-            (data.isWO_wordAvailable()) ? pRegister->setValUInt16Array( data.WO_word.get(fesaDim1), dim1) :
-                                         pRegister->setValUInt16Array( pDevice->WO_word.get(fesaDim1, pContext), dim1);
-    
-        pRegister = pPLCDevice->getRegister("WO_dword");
-            dim1 = pRegister->getDimension1();
-            (data.isWO_dwordAvailable()) ? pRegister->setValUInt32Array( data.WO_dword.get(fesaDim1), dim1) :
-                                         pRegister->setValUInt32Array( pDevice->WO_dword.get(fesaDim1, pContext), dim1);
-    
-        pRegister = pPLCDevice->getRegister("WO_int");
-            dim1 = pRegister->getDimension1();
-            (data.isWO_intAvailable()) ? pRegister->setValInt16Array( data.WO_int.get(fesaDim1), dim1) :
-                                         pRegister->setValInt16Array( pDevice->WO_int.get(fesaDim1, pContext), dim1);
-    
-        pRegister = pPLCDevice->getRegister("WO_dint");
-            dim1 = pRegister->getDimension1();
-            (data.isWO_dintAvailable()) ? pRegister->setValInt32Array( data.WO_dint.get(fesaDim1), dim1) :
-                                         pRegister->setValInt32Array( pDevice->WO_dint.get(fesaDim1, pContext), dim1);
-    
-        pRegister = pPLCDevice->getRegister("WO_real");
-            dim1 = pRegister->getDimension1();
-            (data.isWO_realAvailable()) ? pRegister->setValFloat32Array( data.WO_real.get(fesaDim1), dim1) :
-                                         pRegister->setValFloat32Array( pDevice->WO_real.get(fesaDim1, pContext), dim1);
-    
-        pRegister = pPLCDevice->getRegister("WO_dt");
-            dim1 = pRegister->getDimension1();
-            (data.isWO_dtAvailable()) ? pRegister->setValDateArray( data.WO_dt.get(fesaDim1), dim1) :
-                                         pRegister->setValDateArray( pDevice->WO_dt.get(fesaDim1, pContext), dim1);
-    
-        if (sendNow) pPLCDevice->send(blockName_);
-
-	}
-}
diff --git a/silecs-codegen/src/xml/test/generated_temp/AllTypes.h b/silecs-codegen/src/xml/test/generated_temp/AllTypes.h
deleted file mode 100644
index 3edca8fa217278bc71c97da47d4625f01426f1c3..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/AllTypes.h
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * AllTypes.h
- *
- * Generated by SILECS framework tools 
- */
-
-#ifndef AllTypes_AllTypes_H_
-#define AllTypes_AllTypes_H_
-
-#include <SilecsService.h>
-#include <fesa-core/Synchronization/MultiplexingContext.h>
-#include <AllTypes/GeneratedCode/ServiceLocator.h>
-    #include <AllTypes/Server/SendMyRWBlock.h>
-    #include <AllTypes/Server/SendMyWOBlock.h>
-    
-namespace AllTypes
-{
-
-    /*---------------------------------------------------------------------------------------------------------
-     * SETUP
-     *---------------------------------------------------------------------------------------------------------
-     *  Setup the SILECS service by calling the setup() method from the RTDeviceClass::specificInit()
-     *  Stop and cleanup the SILECS service by calling the cleanup() method if needed (eg.: from ~RTDeviceClass())
-     *
-     *  In order to make use of the different blocks, defined in the silecsdesign, please make use of the static, block related variables of the class, defined on the bottom of this file !
-     * --------------------------------------------------------------------------------------------------------
-     */
-
-    /*---------------------------------------------------------------------------------------------------------
-     * COMMUNICATION
-     *---------------------------------------------------------------------------------------------------------
-     * General methods to synchronize the FESA fields and related PLC registers of the FESA server with or without
-     * PLC side synchronization (send/recv) if requested. Each action is done for one particular block.
-     * In case of BLOCK_MODE configuration (see SILECS doc.), the transaction is optimal with the following
-     * 'AllDevices' and 'PLCDevices' methods.
-     * Each method can be called in the appropriate server-action (set) and rt-action (get)
-     *
-     * getAllDevices  : [receive all devices of all connected PLCs +] update FESA fields with related SILECS registers
-     * setAllDevices  : update SILECS registers with related FESA fields [+ send block to all connected PLCs]
-     * getPLCDevices  : [receive all devices of one PLC +] update FESA fields with related SILECS registers
-     * setPLCDevices  : update SILECS registers with related FESA fields [+ send block to the PLC]
-     * getSomeDevices : [receive each device of the device-collection +] update FESA fields with related SILECS registers
-     * setSomeDevices : update SILECS registers with related FESA fields [+ send block to each device of the device-collection]
-     * getOneDevice   : [receive block of one PLC device +] update FESA fields with related SILECS registers
-     * setOneDevice   : update SILECS registers with related FESA fields [+ send block to the PLC device]
-     *
-     * --------------------------------------------------------------------------------------------------------
-     */
-
-    class AbstractAllTypes
-    {
-        public:
-            static inline Silecs::Service* theService()  { return pService_; }
-            static inline Silecs::Cluster* theCluster()  { return pCluster_; }
-            inline std::string& getBlockName()          { return blockName_; }
-
-            static void setup(const ServiceLocator* serviceLocator);
-            static void cleanup();
-            static void setPLCSlaveRegisters(Silecs::PLC* pPLC, const ServiceLocator* serviceLocator);
-            static void getPLCMasterRegisters(Silecs::PLC* pPLC, const ServiceLocator* serviceLocator);
-
-            AbstractAllTypes(std::string blockName);
-            virtual ~AbstractAllTypes();
-
-            void getAllDevices(const ServiceLocator* serviceLocator, const bool recvNow, MultiplexingContext* pContext);
-            void getPLCDevices(Silecs::PLC* pPLC, const ServiceLocator* serviceLocator, const bool recvNow, MultiplexingContext* pContext);
-            void getSomeDevices(std::vector<Device*> deviceCol, const bool recvNow, MultiplexingContext* pContext);
-            virtual void getOneDevice(Device* pDevice, const bool recvNow, MultiplexingContext* pContext);
-
-            void setAllDevices(const ServiceLocator* serviceLocator, const bool sendNow, MultiplexingContext* pContext);
-            void setPLCDevices(Silecs::PLC* pPLC, const ServiceLocator* serviceLocator, const bool sendNow, MultiplexingContext* pContext);
-            void setSomeDevices(std::vector<Device*> deviceCol, const bool sendNow, MultiplexingContext* pContext);
-            virtual void setOneDevice(Device* pDevice, const bool sendNow, MultiplexingContext* pContext);
-
-        protected:
-
-            static Silecs::Service* pService_;
-            static Silecs::Cluster* pCluster_;
-            static bool isInitialized_;
-
-            // Name of the silecs-block which is addressed
-            std::string blockName_;
-
-            // not copyable object
-            AbstractAllTypes(const AbstractAllTypes&);
-            AbstractAllTypes& operator=(const AbstractAllTypes&);
-    };
-
-    // -------------------------------------------------------------------------------------------------
-    #define BLOCK_RO( name )	\
-    class name##_Type : public AbstractAllTypes	\
-    {	\
-        public:	\
-            name##_Type(std::string name);	\
-            ~name##_Type();	\
-            void getOneDevice(Device* pDevice, const bool transmitNow, MultiplexingContext* pContext);	\
-    }
-
-
-    #define BLOCK_WO( name )	\
-    class name##_Type : public AbstractAllTypes	\
-    {	\
-        public:	\
-            name##_Type(std::string name);	\
-            ~name##_Type();	\
-        void setOneDevice(Device* pDevice, const bool transmitNow, MultiplexingContext* pContext);	\
-        void setOneDevice(Device* pDevice, name##PropertyData& data, const bool transmitNow, MultiplexingContext* pContext);	\
-    }
-
-    #define BLOCK_RW( name )	\
-    class name##_Type : public AbstractAllTypes	\
-    {	\
-        public:	\
-            name##_Type(std::string name);	\
-            ~name##_Type();	\
-            void getOneDevice(Device* pDevice, const bool transmitNow, MultiplexingContext* pContext);	\
-            void setOneDevice(Device* pDevice, const bool transmitNow, MultiplexingContext* pContext);	\
-            void setOneDevice(Device* pDevice, name##PropertyData& data, const bool transmitNow, MultiplexingContext* pContext);	\
-    }
-    
-    BLOCK_RO( MyROBlock );
-    BLOCK_RW( MyRWBlock );
-    BLOCK_WO( MyWOBlock );
-    
-    /*---------------------------------------------------------------------------------------------------------
-     * INTERFACE
-     *---------------------------------------------------------------------------------------------------------
-     * This is the public interface used from the FESA code to access the PLC service.
-     */
-    class AllTypes
-    {
-        public:
-            static inline Silecs::Service* theService()  { return AbstractAllTypes::theService(); }
-            static inline Silecs::Cluster* theCluster()  { return AbstractAllTypes::theCluster(); }
-            static void setup(const ServiceLocator* serviceLocator) { AbstractAllTypes::setup(serviceLocator); }
-            static void cleanup() { AbstractAllTypes::cleanup(); }
-
-                static MyROBlock_Type MyROBlock;
-                static MyRWBlock_Type MyRWBlock;
-                static MyWOBlock_Type MyWOBlock;
-               
-        };
-    }
-
-    #endif /* AllTypes_AllTypes_H_ */
-    
\ No newline at end of file
diff --git a/silecs-codegen/src/xml/test/generated_temp/AllTypesFESA.design b/silecs-codegen/src/xml/test/generated_temp/AllTypesFESA.design
deleted file mode 100644
index 68ba06391b0da0070cd148dffab36d658d29c968..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/AllTypesFESA.design
+++ /dev/null
@@ -1,657 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<equipment-model xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../design-gsi.xsd">
-	<information>
-	  	<class-name>MyClass</class-name>
-		<class-major-version>0</class-major-version>
-		<class-minor-version>1</class-minor-version>
-		<class-tiny-version>0</class-tiny-version>
-		<type>Final</type>
-		<state>development</state>
-		<description>An Empty design with GSI-specific standard properties</description>
-		<fesa-version>3.1.0</fesa-version>
-		<repository-path>undefined</repository-path>
-	</information>
-	<ownership>
-		<responsible name="CSCO"/>
-		<creator login="schwinn"/>
-	</ownership>
-        <interface>
-        <device-interface>
-            <setting>
-                <GSI-Init-Property multiplexed="false" name="Init" visibility="operational">
-                    <set-action partial-setting="true" transaction="true">
-                        <server-action-ref server-action-name-ref="InitSetAction"/>
-                    </set-action>
-                </GSI-Init-Property>
-                <GSI-Reset-Property multiplexed="false" name="Reset" visibility="operational">
-                    <set-action partial-setting="true" transaction="true">
-                        <server-action-ref server-action-name-ref="ResetSetAction"/>
-                    </set-action>
-                </GSI-Reset-Property>
-                <GSI-Setting-Property multiplexed="false" name="Setting" visibility="operational">
-                    <update-flag-item direction="OUT" name="updateFlags" optional="true">
-                       <builtin-type-scalar data-type-name-ref="NOTIFICATION_UPDATE"/>
-                    </update-flag-item>
-                    <cycle-name-item direction="OUT" name="cycleName" optional="true">
-                        <array type="char">
-                            <dim>32</dim>
-                        </array>
-                    </cycle-name-item>
-                    <set-action partial-setting="true" transaction="true">
-                        <server-action-ref server-action-name-ref="SettingSetAction"/>
-                    </set-action>
-                    <get-action>
-                        <server-action-ref server-action-name-ref="SettingGetAction"/>
-                    </get-action>
-                </GSI-Setting-Property>
-                <GSI-Setting-Property name="MyRWBlock" multiplexed="false" visibility="development"><value-item name="RW_dt" direction="INOUT"><array2D type="double"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="RW_dt"/></value-item><value-item name="RW_real" direction="INOUT"><array2D type="float"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="RW_real"/></value-item><value-item name="RW_dint" direction="INOUT"><array2D type="int32_t"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="RW_dint"/></value-item><value-item name="RW_int" direction="INOUT"><array2D type="int16_t"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="RW_int"/></value-item><value-item name="RW_dword" direction="INOUT"><array2D type="int64_t"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="RW_dword"/></value-item><value-item name="RW_word" direction="INOUT"><array2D type="int32_t"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="RW_word"/></value-item><value-item name="RW_byte" direction="INOUT"><array2D type="int16_t"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="RW_byte"/></value-item><value-item name="RW_char" direction="INOUT"><array2D type="int8_t"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="RW_char"/></value-item><value-item name="RW_date" direction="INOUT"><array2D type="double"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="RW_date"/></value-item><value-item name="RW_float32" direction="INOUT"><array2D type="float"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="RW_float32"/></value-item><value-item name="RW_uint32" direction="INOUT"><array2D type="int64_t"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="RW_uint32"/></value-item><value-item name="RW_int32" direction="INOUT"><array2D type="int32_t"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="RW_int32"/></value-item><value-item name="RW_uint16" direction="INOUT"><array2D type="int32_t"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="RW_uint16"/></value-item><value-item name="RW_int16" direction="INOUT"><array2D type="int16_t"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="RW_int16"/></value-item><value-item name="RW_uint8" direction="INOUT"><array2D type="int16_t"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="RW_uint8"/></value-item><value-item name="RW_int8" direction="INOUT"><array2D type="int8_t"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="RW_int8"/></value-item><update-flag-item direction="OUT" optional="true" name="updateFlags"><builtin-type-scalar data-type-name-ref="NOTIFICATION_UPDATE"/></update-flag-item><cycle-name-item direction="OUT" optional="true" name="cycleName"><array type="char"><dim>32</dim></array></cycle-name-item><set-action><server-action-ref server-action-name-ref="SendMyRWBlock"/></set-action><get-action><server-action-ref server-action-name-ref="RecvMyRWBlock"/></get-action></GSI-Setting-Property><GSI-Setting-Property name="MyWOBlock" multiplexed="false" visibility="development"><value-item name="WO_dt" direction="INOUT"><array type="double"><dim>10</dim></array><data-field-ref field-name-ref="WO_dt"/></value-item><value-item name="WO_real" direction="INOUT"><array type="float"><dim>10</dim></array><data-field-ref field-name-ref="WO_real"/></value-item><value-item name="WO_dint" direction="INOUT"><array type="int32_t"><dim>10</dim></array><data-field-ref field-name-ref="WO_dint"/></value-item><value-item name="WO_int" direction="INOUT"><array type="int16_t"><dim>10</dim></array><data-field-ref field-name-ref="WO_int"/></value-item><value-item name="WO_dword" direction="INOUT"><array type="int64_t"><dim>10</dim></array><data-field-ref field-name-ref="WO_dword"/></value-item><value-item name="WO_word" direction="INOUT"><array type="int32_t"><dim>10</dim></array><data-field-ref field-name-ref="WO_word"/></value-item><value-item name="WO_byte" direction="INOUT"><array type="int16_t"><dim>10</dim></array><data-field-ref field-name-ref="WO_byte"/></value-item><value-item name="WO_char" direction="INOUT"><array type="int8_t"><dim>10</dim></array><data-field-ref field-name-ref="WO_char"/></value-item><value-item name="WO_date" direction="INOUT"><array type="double"><dim>10</dim></array><data-field-ref field-name-ref="WO_date"/></value-item><value-item name="WO_string" direction="INOUT"><array2D type="char"><dim1>10</dim1><dim2>64</dim2></array2D><data-field-ref field-name-ref="WO_string"/></value-item><value-item name="WO_float32" direction="INOUT"><array type="float"><dim>10</dim></array><data-field-ref field-name-ref="WO_float32"/></value-item><value-item name="WO_uint32" direction="INOUT"><array type="int64_t"><dim>10</dim></array><data-field-ref field-name-ref="WO_uint32"/></value-item><value-item name="WO_int32" direction="INOUT"><array type="int32_t"><dim>10</dim></array><data-field-ref field-name-ref="WO_int32"/></value-item><value-item name="WO_uint16" direction="INOUT"><array type="int32_t"><dim>10</dim></array><data-field-ref field-name-ref="WO_uint16"/></value-item><value-item name="WO_int16" direction="INOUT"><array type="int16_t"><dim>10</dim></array><data-field-ref field-name-ref="WO_int16"/></value-item><value-item name="WO_uint8" direction="INOUT"><array type="int16_t"><dim>10</dim></array><data-field-ref field-name-ref="WO_uint8"/></value-item><value-item name="WO_int8" direction="INOUT"><array type="int8_t"><dim>10</dim></array><data-field-ref field-name-ref="WO_int8"/></value-item><update-flag-item direction="OUT" optional="true" name="updateFlags"><builtin-type-scalar data-type-name-ref="NOTIFICATION_UPDATE"/></update-flag-item><cycle-name-item direction="OUT" optional="true" name="cycleName"><array type="char"><dim>32</dim></array></cycle-name-item><set-action><server-action-ref server-action-name-ref="SendMyWOBlock"/></set-action><get-action><server-action-ref server-action-name-ref="GetMyWOBlock"/></get-action></GSI-Setting-Property><GSI-Power-Property multiplexed="false" name="Power" visibility="operational">
-                    <update-flag-item direction="OUT" name="updateFlags" optional="true">
-						<builtin-type-scalar data-type-name-ref="NOTIFICATION_UPDATE"/>
-                    </update-flag-item>
-                    <cycle-name-item direction="OUT" name="cycleName" optional="true">
-                        <array type="char">
-                            <dim>32</dim>
-                        </array>
-                    </cycle-name-item>
-                    <set-action partial-setting="true" transaction="true">
-                        <server-action-ref server-action-name-ref="PowerSetAction"/>
-                    </set-action>
-                    <get-action>
-                        <server-action-ref server-action-name-ref="PowerGetAction"/>
-                    </get-action>
-                    <power-item direction="INOUT" name="power">
-                        <custom-type-scalar data-type-name-ref="DEVICE_POWER"/>
-                        
-                        <data-field-ref field-name-ref="power"/>
-                    </power-item>
-                </GSI-Power-Property>
-            </setting>
-            <acquisition>
-                <GSI-Status-Property multiplexed="false" name="Status" on-change="true" subscribable="true" visibility="operational">
-                    <acq-stamp-item direction="OUT" name="acqStamp">
-                        <scalar type="int64_t"/>
-                    </acq-stamp-item>
-                    <update-flag-item direction="OUT" name="updateFlags" optional="true">
-                        <builtin-type-scalar data-type-name-ref="NOTIFICATION_UPDATE"/>
-                    </update-flag-item>
-                    <cycle-name-item direction="OUT" name="cycleName" optional="true">
-                        <array type="char">
-                            <dim>32</dim>
-                        </array>
-                    </cycle-name-item>
-                    <cycle-stamp-item direction="OUT" name="cycleStamp" optional="true">
-                        <scalar type="int64_t"/>
-                    </cycle-stamp-item>
-                    <get-action>
-                        <server-action-ref server-action-name-ref="StatusGetAction"/>
-                    </get-action>
-                    <status-item direction="OUT" name="status">
-                        <custom-type-scalar data-type-name-ref="DEVICE_STATUS"/>
-                        
-                        <data-field-ref field-name-ref="status"/>
-                    </status-item>
-                    <detailed-status-item direction="OUT" name="detailedStatus">
-                        <array type="bool">
-                            <custom-constant-dim constant-name-ref="DETAILED_STATUS_SIZE"/>
-                        </array>
-                        <data-field-ref field-name-ref="detailedStatus"/>
-                    </detailed-status-item>
-                    <detailed-status-labels-item direction="OUT" name="detailedStatus_labels">
-                        <array2D type="char">
-                            <custom-constant-dim1 constant-name-ref="DETAILED_STATUS_SIZE"/>
-                            <custom-constant-dim2 constant-name-ref="MAX_DETAILED_STATUS_LABEL_LENGTH"/>
-                        </array2D>
-                        <data-field-ref field-name-ref="detailedStatus_labels"/>
-                    </detailed-status-labels-item>
-                    <detailed-status-severity-item direction="OUT" name="detailedStatus_severity">
-                        <custom-type-array data-type-name-ref="DETAILED_STATUS_SEVERITY">
-                            <custom-constant-dim constant-name-ref="DETAILED_STATUS_SIZE"/>
-                        </custom-type-array>
-                        <data-field-ref field-name-ref="detailedStatus_severity"/>
-                    </detailed-status-severity-item>
-                    <powerState-item direction="OUT" name="powerState">
-                        <custom-type-scalar data-type-name-ref="DEVICE_POWER_STATE"/>
-                        
-                        <data-field-ref field-name-ref="powerState"/>
-                    </powerState-item>
-                    <control-item direction="OUT" name="control">
-                        <custom-type-scalar data-type-name-ref="DEVICE_CONTROL"/>
-                        
-                        <data-field-ref field-name-ref="control"/>
-                    </control-item>
-                    <interlock-item direction="OUT" name="interlock">
-                        <scalar type="bool"/>
-                        <data-field-ref field-name-ref="interlock"/>
-                    </interlock-item>
-                    <opReady-item direction="OUT" name="opReady">
-                        <scalar type="bool"/>
-                        <data-field-ref field-name-ref="opReady"/>
-                    </opReady-item>
-                    <modulesReady-item direction="OUT" name="modulesReady">
-                        <scalar type="bool"/>
-                        <data-field-ref field-name-ref="modulesReady"/>
-                    </modulesReady-item>
-                    <error_collection-item direction="OUT">
-                        <error_codes direction="OUT" name="error_codes">
-                            <array type="int32_t">
-                                <custom-constant-dim constant-name-ref="MAX_NUMBER_OF_ERROR_MESSAGES"/>
-                            </array>
-                        </error_codes>
-                        <error_messages direction="OUT" name="error_messages">
-                            <array2D type="char">
-                                <custom-constant-dim1 constant-name-ref="MAX_NUMBER_OF_ERROR_MESSAGES"/>
-                                <custom-constant-dim2 constant-name-ref="MAX_ERROR_MESSAGE_LENGTH"/>
-                            </array2D>
-                        </error_messages>
-                        <error_timestamps direction="OUT" name="error_timestamps">
-                            <array type="int64_t">
-                                <custom-constant-dim constant-name-ref="MAX_NUMBER_OF_ERROR_MESSAGES"/>
-                            </array>
-                        </error_timestamps>
-                        <error_cycle_names direction="OUT" name="error_cycle_names">
-                            <array2D type="char">
-                                <custom-constant-dim1 constant-name-ref="MAX_NUMBER_OF_ERROR_MESSAGES"/>
-                                <custom-constant-dim2 constant-name-ref="MAX_ERROR_MESSAGE_LENGTH"/>
-                            </array2D>
-                        </error_cycle_names>
-                        <error_collection-field-ref field-name-ref="error_collection"/>
-                    </error_collection-item>
-                </GSI-Status-Property>
-                <GSI-ModuleStatus-Property visibility="development" subscribable="true" name="ModuleStatus" multiplexed="false">
-                	<acq-stamp-item name="acqStamp" direction="OUT">
-                		<scalar type="int64_t"/>
-                	</acq-stamp-item>
-                	<update-flag-item optional="true" name="updateFlags" direction="OUT">
-                		<builtin-type-scalar data-type-name-ref="NOTIFICATION_UPDATE"/>
-                	</update-flag-item>
-                	<cycle-name-item optional="true" name="cycleName" direction="OUT">
-                		<array type="char">
-                			<dim>32</dim>
-                		</array>
-                	</cycle-name-item>
-                	<cycle-stamp-item optional="true" name="cycleStamp" direction="OUT">
-                		<scalar type="int64_t"/>
-                	</cycle-stamp-item>
-                	<get-action>
-                		<server-action-ref server-action-name-ref="ModuleStatusGetAction"/>
-                	</get-action>
-                	<module-status-item name="moduleStatus" direction="OUT">
-                		<custom-type-array data-type-name-ref="MODULE_STATUS">
-                			<custom-constant-dim constant-name-ref="MODULE_STATUS_SIZE"/>
-                			
-                		</custom-type-array>
-                		
-                		<data-field-ref field-name-ref="moduleStatus"/>
-                	</module-status-item>
-                	<module-status-labels-item name="moduleStatus_labels" direction="OUT">
-                		<array2D type="char">
-                			<custom-constant-dim1 constant-name-ref="MODULE_STATUS_SIZE"/>
-                			<custom-constant-dim2 constant-name-ref="MAX_MODULE_STATUS_LABEL_LENGTH"/>
-                			
-                		</array2D>
-                		
-                		<data-field-ref field-name-ref="moduleStatus_labels"/>
-                	</module-status-labels-item>
-                </GSI-ModuleStatus-Property>
-                <GSI-Acquisition-Property multiplexed="true" name="Acquisition" on-change="true" subscribable="true" visibility="operational">
-                    <acq-stamp-item direction="OUT" name="acqStamp">
-                        <scalar type="int64_t"/>
-                    </acq-stamp-item>
-                    <update-flag-item direction="OUT" name="updateFlags" optional="true">
-                        <builtin-type-scalar data-type-name-ref="NOTIFICATION_UPDATE"/>
-                    </update-flag-item>
-                    <cycle-name-item direction="OUT" name="cycleName" optional="true">
-                        <array type="char">
-                            <dim>32</dim>
-                        </array>
-                    </cycle-name-item>
-                    <cycle-stamp-item direction="OUT" name="cycleStamp" optional="true">
-                        <scalar type="int64_t"/>
-                    </cycle-stamp-item>
-                    <get-action>
-                        <server-action-ref server-action-name-ref="AcquisitionGetAction"/>
-                    </get-action>
-                    <acquisition-context-item direction="OUT">
-                        <acqStamp direction="OUT" name="acqStampGSI">
-                            <scalar type="int64_t"/>
-                        </acqStamp>
-                        <cycleStamp direction="OUT" name="cycleStampGSI">
-                            <scalar type="int64_t"/>
-                        </cycleStamp>
-                        <cycleName direction="OUT" name="cycleNameGSI">
-                            <array type="char">
-                                <custom-constant-dim constant-name-ref="MAX_CYCLE_NAME_LENGTH"/>
-                            </array>
-                        </cycleName>
-                        <beamProcessID direction="OUT" name="beamProcessID">
-                            <scalar type="int32_t"/>
-                        </beamProcessID>
-                         <sequenceID direction="OUT" name="sequenceID">
-                            <scalar type="int32_t"/>
-                        </sequenceID>
-                        <acquisition-context-field-ref field-name-ref="acquisitionContext"/>
-                    </acquisition-context-item>
-                </GSI-Acquisition-Property>
-                <GSI-Acquisition-Property name="MyROBlock" subscribable="true" multiplexed="false" on-change="true" visibility="development"><value-item name="RO_dt" direction="OUT"><scalar type="double"/><data-field-ref field-name-ref="RO_dt"/></value-item><value-item name="RO_real" direction="OUT"><scalar type="float"/><data-field-ref field-name-ref="RO_real"/></value-item><value-item name="RO_dint" direction="OUT"><scalar type="int32_t"/><data-field-ref field-name-ref="RO_dint"/></value-item><value-item name="RO_int" direction="OUT"><scalar type="int16_t"/><data-field-ref field-name-ref="RO_int"/></value-item><value-item name="RO_dword" direction="OUT"><scalar type="int64_t"/><data-field-ref field-name-ref="RO_dword"/></value-item><value-item name="RO_word" direction="OUT"><scalar type="int32_t"/><data-field-ref field-name-ref="RO_word"/></value-item><value-item name="RO_byte" direction="OUT"><scalar type="int16_t"/><data-field-ref field-name-ref="RO_byte"/></value-item><value-item name="RO_char" direction="OUT"><scalar type="int8_t"/><data-field-ref field-name-ref="RO_char"/></value-item><value-item name="RO_date" direction="OUT"><scalar type="double"/><data-field-ref field-name-ref="RO_date"/></value-item><value-item name="RO_string" direction="OUT"><array type="char"><dim>64</dim></array><data-field-ref field-name-ref="RO_string"/></value-item><value-item name="RO_float32" direction="OUT"><scalar type="float"/><data-field-ref field-name-ref="RO_float32"/></value-item><value-item name="RO_uint32" direction="OUT"><scalar type="int64_t"/><data-field-ref field-name-ref="RO_uint32"/></value-item><value-item name="RO_int32" direction="OUT"><scalar type="int32_t"/><data-field-ref field-name-ref="RO_int32"/></value-item><value-item name="RO_uint16" direction="OUT"><scalar type="int32_t"/><data-field-ref field-name-ref="RO_uint16"/></value-item><value-item name="RO_int16" direction="OUT"><scalar type="int16_t"/><data-field-ref field-name-ref="RO_int16"/></value-item><value-item name="RO_uint8" direction="OUT"><scalar type="int16_t"/><data-field-ref field-name-ref="RO_uint8"/></value-item><value-item name="RO_int8" direction="OUT"><scalar type="int8_t"/><data-field-ref field-name-ref="RO_int8"/></value-item><acq-stamp-item direction="OUT" name="acqStamp"><scalar type="int64_t"/></acq-stamp-item><update-flag-item direction="OUT" optional="true" name="updateFlags"><builtin-type-scalar data-type-name-ref="NOTIFICATION_UPDATE"/></update-flag-item><cycle-name-item direction="OUT" optional="true" name="cycleName"><array type="char"><dim>32</dim></array></cycle-name-item><cycle-stamp-item direction="OUT" optional="true" name="cycleStamp"><scalar type="int64_t"/></cycle-stamp-item><get-action><server-action-ref server-action-name-ref="GetMyROBlock"/></get-action><acquisition-context-item direction="OUT"><processIndex direction="OUT" name="processIndex"><scalar type="int32_t"/></processIndex><sequenceIndex direction="OUT" name="sequenceIndex"><scalar type="int32_t"/></sequenceIndex><chainIndex direction="OUT" name="chainIndex"><scalar type="int32_t"/></chainIndex><eventNumber direction="OUT" name="eventNumber"><scalar type="int32_t"/></eventNumber><timingGroupID direction="OUT" name="timingGroupID"><scalar type="int32_t"/></timingGroupID><acquisitionStamp direction="OUT" name="acquisitionStamp"><scalar type="int64_t"/></acquisitionStamp><eventStamp direction="OUT" name="eventStamp"><scalar type="int64_t"/></eventStamp><processStartStamp direction="OUT" name="processStartStamp"><scalar type="int64_t"/></processStartStamp><sequenceStartStamp direction="OUT" name="sequenceStartStamp"><scalar type="int64_t"/></sequenceStartStamp><chainStartStamp direction="OUT" name="chainStartStamp"><scalar type="int64_t"/></chainStartStamp><acquisition-context-field-ref field-name-ref="acquisitionContext"/></acquisition-context-item></GSI-Acquisition-Property><GSI-Version-Property multiplexed="false" name="Version" on-change="false" subscribable="false" visibility="operational">
-                    <acq-stamp-item direction="OUT" name="acqStamp">
-                        <scalar type="int64_t"/>
-                    </acq-stamp-item>
-                    <update-flag-item direction="OUT" name="updateFlags" optional="true">
-                        <builtin-type-scalar data-type-name-ref="NOTIFICATION_UPDATE"/>
-                    </update-flag-item>
-                    <cycle-name-item direction="OUT" name="cycleName" optional="true">
-                        <array type="char">
-                            <dim>32</dim>
-                        </array>
-                    </cycle-name-item>
-                    <cycle-stamp-item direction="OUT" name="cycleStamp" optional="true">
-                        <scalar type="int64_t"/>
-                    </cycle-stamp-item>
-                    <get-action>
-                        <server-action-ref server-action-name-ref="VersionGetAction"/>
-                    </get-action>
-                    <version-item direction="OUT" name="classVersion">
-                        <array type="char">
-                            <custom-constant-dim constant-name-ref="MAX_VERSION_NAME_LENGTH"/>
-                        </array>
-                    </version-item>
-                    <version-item direction="OUT" name="deployUnitVersion">
-                        <array type="char">
-                            <custom-constant-dim constant-name-ref="MAX_VERSION_NAME_LENGTH"/>
-                        </array>
-                    </version-item>
-                    <version-item direction="OUT" name="fesaVersion">
-                        <array type="char">
-                            <custom-constant-dim constant-name-ref="MAX_VERSION_NAME_LENGTH"/>
-                        </array>
-                    </version-item>
-                </GSI-Version-Property>
-         </acquisition>
-      </device-interface>
-        <global-interface>
-            <setting>
-                <diagnostic-property multiplexed="false" name="DiagnosticSetting" visibility="expert">
-                    <description>Generic property which allows to diagnose any FESA classes</description>
-                        <mode-item direction="INOUT" name="enableDiagMode">
-                            <scalar type="bool"/>
-                        </mode-item>
-                        <host-item direction="INOUT" name="hostName">
-                            <array type="char">
-                                <dim>32</dim>
-                            </array>
-                        </host-item>
-                        <port-item direction="INOUT" name="portNumber">
-                            <scalar type="int32_t"/>
-                        </port-item>
-                        <config-item direction="IN" name="requestConfig">
-                            <scalar type="bool"/>
-                        </config-item>
-                        <state-item direction="IN" name="requestState">
-                            <scalar type="bool"/>
-                        </state-item>
-                        <fwk-topic-item direction="INOUT" name="fwkTopic">
-                            <builtin-type-scalar data-type-name-ref="DIAG_FWK_TOPIC"/>
-                        </fwk-topic-item>
-                        <custom-topic-item direction="INOUT" name="customTopic">
-                            <custom-type-scalar data-type-name-ref="DIAG_TOPIC"/>
-                        </custom-topic-item>
-                        <device-trace-item direction="INOUT" name="traceDevices">
-                            <array type="char">
-                                <dim>320</dim>
-                            </array>
-                        </device-trace-item>
-                        <bypass-action-item direction="INOUT" name="bypassActions">
-                            <array type="char">
-                                <dim>320</dim>
-                            </array>
-                        </bypass-action-item>
-                </diagnostic-property>
-            </setting>
-            <acquisition>
-                <GSI-DeviceDescription-Property multiplexed="false" name="DeviceDescription" on-change="false" subscribable="false" visibility="operational">
-                    <timing-info-item direction="OUT" name="deviceNameTimingReceiver">
-                        <array type="char">
-                            <variable-dim/>
-                        </array>
-                        <data-field-ref field-name-ref="deviceNameTimingReceiver"/>
-                    </timing-info-item>
-                    <property-info-item direction="OUT" name="propertyNames">
-                        <array2D type="char">
-                            <variable-dim1/>
-                            <variable-dim2/>
-                        </array2D>
-                    </property-info-item>
-                    <device-info-item direction="OUT" name="deviceNames">
-                        <array2D type="char">
-                            <variable-dim1/>
-                            <variable-dim2/>
-                        </array2D>
-                    </device-info-item>
-                    <global-device-info-item direction="OUT" name="globalDeviceName">
-                        <array type="char">
-                            <variable-dim/>
-                        </array>
-                    </global-device-info-item>
-                    <host-info-item direction="OUT" name="host">
-                        <array type="char">
-                            <variable-dim/>
-                        </array>
-                    </host-info-item>
-                </GSI-DeviceDescription-Property>
-            </acquisition>
-        </global-interface>
-    </interface>
-    <builtin-types>
-		<notification-update-enum name="NOTIFICATION_UPDATE">
-            <IMMEDIATE access="RO" symbol="IMMEDIATE" value="1"/>
-            <SET access="RO" symbol="SET" value="2"/>
-        </notification-update-enum>
-        <diag-fwk-topic name="DIAG_FWK_TOPIC">
-            <b0 name="SRV_GET_ACTION_PROFIING"/>
-            <b1 name="SRV_SET_ACTION_PROFILING"/>
-            <b2 name="RT_ACTION_PROFILING"/>
-            <b3 name="EVENT_PROFILING"/>
-            <b4 name="NOTIFICATION_PROFILING"/>
-            <b5 name="SRV_GET_ACTION_TRACKING"/>
-            <b6 name="SRV_SET_ACTION_TRACKING"/>
-            <b7 name="RT_ACTION_TRACKING"/>
-            <b8 name="EVENT_TRACKING"/>
-            <b9 name="NOTIFICATION_TRACKING"/>
-            <b10 name="PERSISTENCY_TRACKING"/>
-            <b11 name="TRANSACTION_TRACKING"/>
-            <b12 name="SUBSCRIPTION_TRACKING"/>
-            <b13 name="SIGNAL_HANDLER_TRACKING"/>
-            <b14 name="LOCAL_CONNECTION_TRACKING"/>
-        </diag-fwk-topic>
-        <fault-severity name="FaultSeverity">
-        	<description>Enumeration listing the available fault severities used by the fault fields</description>
-        	<INFO access="RO" meaning="NONE" value="0" symbol="INFO"/>
-        	<WARNING access="RO" meaning="WARNING" value="1" symbol="WARNING"/>
-        	<ERROR access="RO" meaning="ERROR" value="2" symbol="ERROR"/>
-        	<CRITICAL access="RO" meaning="ERROR" value="3" symbol="CRITICAL"/>
-        </fault-severity>
-
-    </builtin-types>
-    <custom-types>
-        <diag-custom-topic name="DIAG_TOPIC">
-        </diag-custom-topic>
-        <enum name="DEVICE_STATUS">
-        <!--Possible (mutually exclusive) values to describe the device status-->
-            
-            <item access="RW" meaning="NONE" symbol="UNKNOWN" value="0"/>
-            <!--The device status is unknown-->
-            
-            <item access="RW" meaning="NONE" symbol="OK" value="1"/>
-            <!--The device is in fully operational state-->
-            
-            <item access="RW" meaning="NONE" symbol="WARNING" value="2"/>
-            <!--The device is not fully operational; A device in WARNING state can still be used operationally, -->
-            <!--but clients must be informed of a problem that might become worse. Details are explained in the errorMsg field.-->
-            
-            <item access="RW" meaning="NONE" symbol="ERROR" value="3"/>
-            <!--The device is in a fault state. Details are explained in the errorMsg field-->
-        </enum>
-        <enum name="DEVICE_POWER_STATE">
-        <!--Possible (mutually exclusive) values to describe the power-state of the device.-->
-            
-            <item access="RW" meaning="NONE" symbol="UNKNOWN" value="0"/>
-            <!--The device mode is unknown-->
-            
-            <item access="RW" meaning="ON" symbol="ON" value="1"/>
-            <!--The device is in fully operational state-->
-            
-            <item access="RW" meaning="NONE" symbol="OFF" value="2"/>
-            <!--The device is turned off-->
-            
-            <item access="RW" meaning="NONE" symbol="STANDBY" value="3"/>
-            <!--The device is in a stand-by mode. This mode is a sort of “parking mode” in which the device can -->
-            <!--stay for hours or even days. It is defined by the following characteristics:-->
-            <!--It is safe, it does not wear out, it consumes little energy.-->
-            <!--Furthermore, it takes a short time to go from STANDBY to ON mode-->
-            
-            <item access="RW" meaning="NONE" symbol="POWER_DOWN" value="4"/>
-            <!--The device is shutting down. Note that some properties may not be accessible during this time.-->
-            <!--After shutdown the device will be in the mode OFF-->
-            
-            <item access="RW" meaning="NONE" symbol="POWER_UP" value="5"/>
-            <!--The device is starting up. Note that some properties may not be accessible during this time.-->
-            <!--After (re-)starting the device probably will be in the mode ON-->
-            
-        </enum>
-        <enum name="DEVICE_POWER">
-        <!--An enumeration Type used to control the operational mode of the device.-->
-        <!--Its values are a subset of those in the DEVICE_POWER_STATE type-->
-            <item access="RW" meaning="ON" symbol="ON" value="1"/>
-            <!--The device is in fully operational state-->     
-            
-            <item access="RW" meaning="OFF" symbol="OFF" value="2"/>
-            <!--The device is turned off-->
-        </enum>
-        <enum name="DEVICE_CONTROL">
-        <!--Possible values to describe the control mode of a device-->
-        <!--Currently two control modes (LOCAL, REMOTE) are defined-->
-        
-            <item access="RW" meaning="NONE" symbol="REMOTE" value="0"/>
-            <!--The device can be controlled normally through the control system-->
-            
-            <item access="RW" meaning="NONE" symbol="LOCAL" value="1"/>
-            <!--The device can be controlled locally. But it can be accessed in read-only mode via the control system-->
-        </enum>
-        <enum name="TOL_CHECK_MODE">
-        <!--This constant defines possible modes to check whether a control value is inside the tolerance values.-->
-        <!--Used to give information on how the tolerance fields are used to calculate the xxx_status information.-->
-        
-            <item access="RO" symbol="ABS" value="0"/>
-            <!--Use the absolute tolerance _tolAbs-->
-            
-            <item access="RO" symbol="REL" value="1"/>
-            <!--Use the relative tolerance _tolRel-->
-        </enum>
-        <bit-enum-32bits name="AQN_STATUS">
-        <!--Possible values to describe the acquisition status of a field (in the _status suffix)-->
-        <!--If this suffix is missing, it means that no additional status information is provided for the corresponding field-->
-        <!--If all bits are 0, this means that the corresponding field is OK.-->
-        <!--Only the lower 16 bits are standardized, the upper 16 bits can be defined by the equipment specialist.-->
-        <!--The difference between the Status property and the _status suffix is described in the section on the Status property.-->
-            <b0 name="NOT_OK"/>
-            <!--Some problem occurred that is not represented by the other bits. This property is called-->
-            <!-- NOT_OK so that it is not mixed up with ERROR or WARNING in the Status property-->
-            <b1 name="BAD_QUALITY"/>
-            <!--The value was acquired with a degraded quality. This is typically used for measurements.-->
-            <b2 name="DIFFERENT_FROM_SETTING"/>
-            <!--Different from the requested control value (for discrete values)--><!--or out of tolerance (for continuous values).-->
-            <b3 name="OUT_OF_RANGE"/>
-            <!--The value is out of the normal range (e.g. a temperature is too high or too low).-->
-            <b4 name="BUSY"/>
-            <!--The property value is changing in response to receiving a new control value (e.g. moving to a-->
-            <!--new position, charging a capacitor, ...). If the value change does not reach the requested new-->
-            <!--value within the maximum timeout, the BUSY bit should remain=1 and the TIMEOUT bit must be turned on.-->
-            <b5 name="TIMEOUT"/>
-            <!--A timeout occurred, because the property did not reach the reqested new control value within the-->
-            <!--maximum allowable time. A timeout normally indicates a problem to be addressed by the-->
-            <!--equipment specialist. This is typically used for slow changing control values that are BUSY while they change.-->
-            <b6 name="bit6_is_reserved_for_later_usage"/>
-            <b7 name="bit7_is_reserved_for_later_usage"/>
-            <b8 name="bit8_is_reserved_for_later_usage"/>
-            <b9 name="bit9_is_reserved_for_later_usage"/>
-            <b10 name="bit10_is_reserved_for_later_usage"/>
-            <b11 name="bit11_is_reserved_for_later_usage"/>
-            <b12 name="bit12_is_reserved_for_later_usage"/>
-            <b13 name="bit13_is_reserved_for_later_usage"/>
-            <b14 name="bit14_is_reserved_for_later_usage"/>
-            <b15 name="bit15_is_reserved_for_later_usage"/>
-            <!--bit 6 to 15 are reserved ... dont use them!-->
-            
-            <b16 name="bit_16_and_higher_can_be_used_by_the_class_developer"/>
-            <!--into bit 16..32 you can put in anything you want-->
-        </bit-enum-32bits>
-
-        <struct name="GSI_ERROR">
-        <!--This struct-item describes the structure of an GSI-error-->
-            <struct-item name="error_string">
-            <!--This string holds the error-message-->
-                <array type="char">
-                    <custom-constant-dim constant-name-ref="MAX_ERROR_MESSAGE_LENGTH"/>
-                </array>
-            </struct-item>
-            <struct-item name="error_code">
-            <!--The error code according to the defined error-message-->
-                <scalar type="int32_t"/>
-            </struct-item>
-            <!--The timestamp when the error occured-->
-            <struct-item name="error_timestamp">
-                <scalar type="int64_t"/>
-            </struct-item>
-            <!--The cycle for which the error occured-->
-            <struct-item name="error_cycle_name">
-                <array type="char">
-                    <custom-constant-dim constant-name-ref="MAX_CYCLE_NAME_LENGTH"/>
-                </array>
-            </struct-item>
-        </struct>
-        <struct name="GSI_ACQ_CONTEXT">
-        <!--This struct-item describes all AcquisitionContext items which are relevant for GSI-->
-            <struct-item name="acqStamp">
-            <!--The acquisition stamp is used to indicate when a measurement was done -->
-                <scalar type="int64_t"/>
-            </struct-item>
-            <struct-item name="cycleStamp">
-            <!--The cycle stamp is used to indicate when a specific cycle has started-->
-                <scalar type="int64_t"/>
-            </struct-item>
-            <struct-item name="cycleName">
-            <!--The cycle name indicates the cycle which started at time of the cycleStamp -->
-                <array type="char">
-                    <custom-constant-dim constant-name-ref="MAX_CYCLE_NAME_LENGTH"/>    
-                </array>
-            </struct-item>
-            <struct-item name="beamProcessID">
-				<scalar type="int32_t"/>
-            </struct-item>
-            <struct-item name="sequenceID">
-				<scalar type="int32_t"/>
-            </struct-item>
-        </struct>
-        <constant name="MAX_ERROR_MESSAGE_LENGTH" type="uint32_t" value="256"/>
-        <constant name="MAX_NUMBER_OF_ERROR_MESSAGES" type="uint32_t" value="16"/>
-        <constant name="MAX_CYCLE_NAME_LENGTH" type="uint32_t" value="256"/>
-        <constant name="MAX_VERSION_NAME_LENGTH" type="uint32_t" value="256"/>
-        <constant name="MAX_DETAILED_STATUS_LABEL_LENGTH" type="uint32_t" value="30"/>
-        <constant name="DETAILED_STATUS_SIZE" type="uint32_t" value="2"/>
-        <enum name="DETAILED_STATUS_SEVERITY">
-            <item access="RO" symbol="INFO" value="0"/>
-            <item access="RO" symbol="WARNING_ON_FALSE" value="1"/>
-            <item access="RO" symbol="ERROR_ON_FALSE" value="2"/>
-        </enum>
-        <enum name="MODULE_STATUS">
-        <!-- Mutually exclusive values to describe the status of a hardware / software module-->
-        	<item access="RO" value="0" symbol="UNKNOWN"/>
-        	<!--The status of the module is not known-->
-        	<item access="RO" value="1" symbol="OK"/>
-        	<!--The module is in fully operational state-->
-        	<item access="RO" value="2" symbol="WARNING"/>
-        	<!--The module is not fully operational; A module in WARNING state may still be used operationally, -->
-        	<!--but clients must be informed of a problem that might become worse. -->
-        	<item access="RO" value="3" symbol="ERROR"/>
-        	<!--The module is in a fault state. The related device is not operational.-->
-        	<item access="RO" value="4" symbol="NOT_AVAILABLE"/>
-            <!--The module is missing. The related device is not operational.-->
-        </enum>
-        <constant name="MAX_MODULE_STATUS_LABEL_LENGTH" type="uint32_t" value="30"/>
-        <constant name="MODULE_STATUS_SIZE" type="uint32_t" value="2"/>
-    </custom-types>
-    <data>
-        <device-data>
-            <configuration>
-                <field name="parameterFile"><description>ParameterFile of the PLC (*.silecsparam)</description><array type="char"><dim>512</dim></array><default>../../../generated/client/MyControllerName.silecsparam</default></field><field name="plcDeviceLabel"><description>Name of the related SILECS instance within the PLC mapping</description><array type="char"><dim>128</dim></array></field><field name="plcHostName"><description>Hostname of the PLC that contains the related SILECS class device</description><array type="char"><dim>128</dim></array></field><GSI-detailed-status-labels-field name="detailedStatus_labels">
-                    <array2D type="char">
-                        <custom-constant-dim1 constant-name-ref="DETAILED_STATUS_SIZE"/>
-                        <custom-constant-dim2 constant-name-ref="MAX_DETAILED_STATUS_LABEL_LENGTH"/>
-                    </array2D>
-                    <default>{myStatusLabel1,myStatusLabel2}</default>
-                </GSI-detailed-status-labels-field>
-                <GSI-detailed-status-severity-field name="detailedStatus_severity">
-                    <custom-type-array data-type-name-ref="DETAILED_STATUS_SEVERITY">
-                        <custom-constant-dim constant-name-ref="DETAILED_STATUS_SIZE"/>
-                    </custom-type-array>
-                    <default>{INFO,INFO}</default>
-                </GSI-detailed-status-severity-field>
-                <GSI-module-status-labels-field name="moduleStatus_labels">
-                	<array2D type="char">
-                		<custom-constant-dim1 constant-name-ref="MODULE_STATUS_SIZE"/>
-                		
-                		<custom-constant-dim2 constant-name-ref="MAX_MODULE_STATUS_LABEL_LENGTH"/>
-                	</array2D>
-                	<default>{myModule1,myModule2}</default>
-                </GSI-module-status-labels-field>
-            </configuration>
-            <setting>
-                <field name="WO_dt" shared="true" multiplexed="false" persistent="true"><array type="double"><dim>10</dim></array></field><field name="WO_real" shared="true" multiplexed="false" persistent="true"><array type="float"><dim>10</dim></array></field><field name="WO_dint" shared="true" multiplexed="false" persistent="true"><array type="int32_t"><dim>10</dim></array></field><field name="WO_int" shared="true" multiplexed="false" persistent="true"><array type="int16_t"><dim>10</dim></array></field><field name="WO_dword" shared="true" multiplexed="false" persistent="true"><array type="int64_t"><dim>10</dim></array></field><field name="WO_word" shared="true" multiplexed="false" persistent="true"><array type="int32_t"><dim>10</dim></array></field><field name="WO_byte" shared="true" multiplexed="false" persistent="true"><array type="int16_t"><dim>10</dim></array></field><field name="WO_char" shared="true" multiplexed="false" persistent="true"><array type="int8_t"><dim>10</dim></array></field><field name="WO_date" shared="true" multiplexed="false" persistent="true"><array type="double"><dim>10</dim></array></field><field name="WO_string" shared="true" multiplexed="false" persistent="true"><array2D type="char"><dim1>10</dim1><dim2>64</dim2></array2D></field><field name="WO_float32" shared="true" multiplexed="false" persistent="true"><array type="float"><dim>10</dim></array></field><field name="WO_uint32" shared="true" multiplexed="false" persistent="true"><array type="int64_t"><dim>10</dim></array></field><field name="WO_int32" shared="true" multiplexed="false" persistent="true"><array type="int32_t"><dim>10</dim></array></field><field name="WO_uint16" shared="true" multiplexed="false" persistent="true"><array type="int32_t"><dim>10</dim></array></field><field name="WO_int16" shared="true" multiplexed="false" persistent="true"><array type="int16_t"><dim>10</dim></array></field><field name="WO_uint8" shared="true" multiplexed="false" persistent="true"><array type="int16_t"><dim>10</dim></array></field><field name="WO_int8" shared="true" multiplexed="false" persistent="true"><array type="int8_t"><dim>10</dim></array></field><field name="RW_dt" multiplexed="false" persistent="true"><array2D type="double"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_real" multiplexed="false" persistent="true"><array2D type="float"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_dint" multiplexed="false" persistent="true"><array2D type="int32_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_int" multiplexed="false" persistent="true"><array2D type="int16_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_dword" multiplexed="false" persistent="true"><array2D type="int64_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_word" multiplexed="false" persistent="true"><array2D type="int32_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_byte" multiplexed="false" persistent="true"><array2D type="int16_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_char" multiplexed="false" persistent="true"><array2D type="int8_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_date" multiplexed="false" persistent="true"><array2D type="double"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_float32" multiplexed="false" persistent="true"><array2D type="float"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_uint32" multiplexed="false" persistent="true"><array2D type="int64_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_int32" multiplexed="false" persistent="true"><array2D type="int32_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_uint16" multiplexed="false" persistent="true"><array2D type="int32_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_int16" multiplexed="false" persistent="true"><array2D type="int16_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_uint8" multiplexed="false" persistent="true"><array2D type="int16_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_int8" multiplexed="false" persistent="true"><array2D type="int8_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><GSI-power-field multiplexed="false" name="power" persistent="false">
-                    <custom-type-scalar data-type-name-ref="DEVICE_POWER"/>
-                </GSI-power-field>
-            </setting>
-            <acquisition>
-                <field name="RO_dt" multiplexed="false" persistent="false"><scalar type="double"/></field><field name="RO_real" multiplexed="false" persistent="false"><scalar type="float"/></field><field name="RO_dint" multiplexed="false" persistent="false"><scalar type="int32_t"/></field><field name="RO_int" multiplexed="false" persistent="false"><scalar type="int16_t"/></field><field name="RO_dword" multiplexed="false" persistent="false"><scalar type="int64_t"/></field><field name="RO_word" multiplexed="false" persistent="false"><scalar type="int32_t"/></field><field name="RO_byte" multiplexed="false" persistent="false"><scalar type="int16_t"/></field><field name="RO_char" multiplexed="false" persistent="false"><scalar type="int8_t"/></field><field name="RO_date" multiplexed="false" persistent="false"><scalar type="double"/></field><field name="RO_string" multiplexed="false" persistent="false"><array type="char"><dim>64</dim></array></field><field name="RO_float32" multiplexed="false" persistent="false"><scalar type="float"/></field><field name="RO_uint32" multiplexed="false" persistent="false"><scalar type="int64_t"/></field><field name="RO_int32" multiplexed="false" persistent="false"><scalar type="int32_t"/></field><field name="RO_uint16" multiplexed="false" persistent="false"><scalar type="int32_t"/></field><field name="RO_int16" multiplexed="false" persistent="false"><scalar type="int16_t"/></field><field name="RO_uint8" multiplexed="false" persistent="false"><scalar type="int16_t"/></field><field name="RO_int8" multiplexed="false" persistent="false"><scalar type="int8_t"/></field><GSI-control-field multiplexed="false" name="control">
-                    <custom-type-scalar data-type-name-ref="DEVICE_CONTROL"/>
-                </GSI-control-field>
-                <GSI-powerState-field multiplexed="false" name="powerState">
-                    <custom-type-scalar data-type-name-ref="DEVICE_POWER_STATE"/>
-                </GSI-powerState-field>
-                <GSI-status-field multiplexed="false" name="status">
-                    <custom-type-scalar data-type-name-ref="DEVICE_STATUS"/>
-                </GSI-status-field>
-                <GSI-interlock-field multiplexed="false" name="interlock">
-                    <scalar type="bool"/>
-                </GSI-interlock-field>
-                <GSI-opReady-field multiplexed="false" name="opReady">
-                    <scalar type="bool"/>
-                </GSI-opReady-field>
-                <GSI-modulesReady-field name="modulesReady" multiplexed="false">
-                	<scalar type="bool"/>
-                </GSI-modulesReady-field>
-                <GSI-detailed-status-field multiplexed="false" name="detailedStatus">
-                    <array type="bool">
-                        <custom-constant-dim constant-name-ref="DETAILED_STATUS_SIZE"/>
-                    </array>
-                </GSI-detailed-status-field>
-                <GSI-module-status-field name="moduleStatus" multiplexed="false">
-                	<custom-type-array data-type-name-ref="MODULE_STATUS">
-                		<custom-constant-dim constant-name-ref="MODULE_STATUS_SIZE"/>
-                		
-                	</custom-type-array>
-                </GSI-module-status-field>
-                <GSI-acquisition-context-field multiplexed="true" name="acquisitionContext">
-                    <custom-type-scalar data-type-name-ref="GSI_ACQ_CONTEXT"/>
-                </GSI-acquisition-context-field>
-                <GSI-error_collection-field multiplexed="false" name="error_collection">
-                    <custom-type-array data-type-name-ref="GSI_ERROR">
-                        <custom-constant-dim constant-name-ref="MAX_NUMBER_OF_ERROR_MESSAGES"/>
-                    </custom-type-array>
-                </GSI-error_collection-field>
-            </acquisition>
-        </device-data>
-        <global-data>
-            <configuration>
-                <!-- The name of the timing receiver -->
-                <field name="plcClassVersion"><description>Version of the SILECS class that needs to be deployed in the controller</description><array type="char"><dim>5</dim></array><default>0.1.0</default></field><GSI-timing-receiver-name-field name="deviceNameTimingReceiver">
-                    <array type="char">
-                        <!-- The number of the timing receiver -->
-                        <variable-dim/>
-                    </array>
-                </GSI-timing-receiver-name-field>
-                </configuration>
-        </global-data>
-    </data>
-    <actions>
-        <set-server-action implementation="default" name="InitSetAction"/>
-        <set-server-action implementation="default" name="ResetSetAction"/>
-        <set-server-action implementation="default" name="SettingSetAction"/>
-        <set-server-action implementation="default" name="PowerSetAction"/>
-        <get-server-action implementation="default" name="PowerGetAction"/>
-        <get-server-action implementation="default" name="SettingGetAction"/>
-        <get-server-action implementation="default" name="AcquisitionGetAction"/>
-        <get-server-action implementation="default" name="StatusGetAction"/>
-        <get-server-action implementation="default" name="VersionGetAction"/><get-server-action implementation="default" name="ModuleStatusGetAction"/>
-    <get-server-action name="GetMyROBlock" implementation="default"/><rt-action name="RecvMyROBlock"><notified-property property-name-ref="MyROBlock" automatic="true"/></rt-action><set-server-action name="SendMyRWBlock" implementation="custom"/><get-server-action name="RecvMyRWBlock" implementation="custom"/><set-server-action name="SendMyWOBlock" implementation="custom"/><get-server-action name="GetMyWOBlock" implementation="default"/></actions>
-
-<events><sources><timing-event-source name="Timing"/><timer-event-source name="Timer"/></sources><logical-events><logical-event name="RecvMyROBlockEvent" use="required" type="timer"/></logical-events></events><scheduling-units><scheduling-unit name="RecvMyROBlockUnit"><rt-action-ref rt-action-name-ref="RecvMyROBlock"/><logical-event-ref logical-event-name-ref="RecvMyROBlockEvent"/></scheduling-unit></scheduling-units></equipment-model>
diff --git a/silecs-codegen/src/xml/test/generated_temp/client/.gitignore b/silecs-codegen/src/xml/test/generated_temp/client/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..e7a210ec7dcb290f7c9247714741a9caee387a8f
--- /dev/null
+++ b/silecs-codegen/src/xml/test/generated_temp/client/.gitignore
@@ -0,0 +1,3 @@
+*
+*/
+!.gitignore
\ No newline at end of file
diff --git a/silecs-codegen/src/xml/test/generated_temp/client/Beckhoff_BC9020.silecsparam b/silecs-codegen/src/xml/test/generated_temp/client/Beckhoff_BC9020.silecsparam
deleted file mode 100644
index ab07e58ed858994e0e32cca3132fb9c5faf9f443..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/client/Beckhoff_BC9020.silecsparam
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0"?>
-<SILECS-Param silecs-version="DEV">
-  <Mapping-Info>
-    <Owner user-login="schwinn"/>
-    <Generation date="2016-07-29 16:19:24.407595"/>
-    <Deployment checksum="2843029646"/>
-  </Mapping-Info>
-  <SILECS-Mapping plc-name="Beckhoff_BC9020" plc-brand="BECKHOFF" plc-system="TWINCat" plc-model="BC9020" protocol="BLOCK_MODE" address="32768" domain="NotUsed" used-mem="TODO">
-    <SILECS-Class name="SilecsHeader" version="1.0.0" address="32768" used-mem="MW16384..MW16407 / 24 words">
-      <Block name="hdrBlk" mode="READ-ONLY" size="14" address="32768" mem-size="48">
-        <Register name="_version" format="string" string-len="16" array-dim1="1" array-dim2="1" size="1" address="0" mem-size="17" synchro="MASTER"/>
-        <Register name="_checksum" format="uint32" array-dim1="1" array-dim2="1" size="4" address="18" mem-size="4" synchro="MASTER"/>
-        <Register name="_user" format="string" string-len="16" array-dim1="1" array-dim2="1" size="1" address="22" mem-size="17" synchro="MASTER"/>
-        <Register name="_date" format="dt" array-dim1="1" array-dim2="1" size="8" address="40" mem-size="8" synchro="MASTER"/>
-      </Block>
-      <Instance label="SilecsHeader" address="0"/>
-    </SILECS-Class>
-    <SILECS-Class name="AllTypes" version="0.1.0" address="32816" used-mem="MW16408..MW18167 / 1760 words">
-      <Block name="MyROBlock" mode="READ-ONLY" size="53" address="32816" mem-size="122">
-        <Register name="RO_int8" format="int8" array-dim1="1" array-dim2="1" size="1" address="0" mem-size="1" synchro="MASTER"/>
-        <Register name="RO_uint8" format="uint8" array-dim1="1" array-dim2="1" size="1" address="2" mem-size="1" synchro="MASTER"/>
-        <Register name="RO_int16" format="int16" array-dim1="1" array-dim2="1" size="2" address="4" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_uint16" format="uint16" array-dim1="1" array-dim2="1" size="2" address="6" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_int32" format="int32" array-dim1="1" array-dim2="1" size="4" address="8" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_uint32" format="uint32" array-dim1="1" array-dim2="1" size="4" address="12" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_float32" format="float32" array-dim1="1" array-dim2="1" size="4" address="16" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_string" format="string" string-len="64" array-dim1="1" array-dim2="1" size="1" address="20" mem-size="65" synchro="MASTER"/>
-        <Register name="RO_date" format="date" array-dim1="1" array-dim2="1" size="8" address="86" mem-size="8" synchro="MASTER"/>
-        <Register name="RO_char" format="char" array-dim1="1" array-dim2="1" size="1" address="94" mem-size="1" synchro="MASTER"/>
-        <Register name="RO_byte" format="byte" array-dim1="1" array-dim2="1" size="1" address="96" mem-size="1" synchro="MASTER"/>
-        <Register name="RO_word" format="word" array-dim1="1" array-dim2="1" size="2" address="98" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_dword" format="dword" array-dim1="1" array-dim2="1" size="4" address="100" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_int" format="int" array-dim1="1" array-dim2="1" size="2" address="104" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_dint" format="dint" array-dim1="1" array-dim2="1" size="4" address="106" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_real" format="real" array-dim1="1" array-dim2="1" size="4" address="110" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_dt" format="dt" array-dim1="1" array-dim2="1" size="8" address="114" mem-size="8" synchro="MASTER"/>
-      </Block>
-      <Block name="MyRWBlock" mode="READ-WRITE" size="212" address="33060" mem-size="468">
-        <Register name="RW_int8" format="int8" array-dim1="2" array-dim2="2" size="1" address="0" mem-size="4" synchro="MASTER"/>
-        <Register name="RW_uint8" format="uint8" array-dim1="2" array-dim2="2" size="1" address="4" mem-size="4" synchro="MASTER"/>
-        <Register name="RW_int16" format="int16" array-dim1="2" array-dim2="2" size="2" address="8" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_uint16" format="uint16" array-dim1="2" array-dim2="2" size="2" address="16" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_int32" format="int32" array-dim1="2" array-dim2="2" size="4" address="24" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_uint32" format="uint32" array-dim1="2" array-dim2="2" size="4" address="40" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_float32" format="float32" array-dim1="2" array-dim2="2" size="4" address="56" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_string" format="string" string-len="64" array-dim1="2" array-dim2="2" size="1" address="72" mem-size="260" synchro="MASTER"/>
-        <Register name="RW_date" format="date" array-dim1="2" array-dim2="2" size="8" address="332" mem-size="32" synchro="MASTER"/>
-        <Register name="RW_char" format="char" array-dim1="2" array-dim2="2" size="1" address="364" mem-size="4" synchro="MASTER"/>
-        <Register name="RW_byte" format="byte" array-dim1="2" array-dim2="2" size="1" address="368" mem-size="4" synchro="MASTER"/>
-        <Register name="RW_word" format="word" array-dim1="2" array-dim2="2" size="2" address="372" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_dword" format="dword" array-dim1="2" array-dim2="2" size="4" address="380" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_int" format="int" array-dim1="2" array-dim2="2" size="2" address="396" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_dint" format="dint" array-dim1="2" array-dim2="2" size="4" address="404" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_real" format="real" array-dim1="2" array-dim2="2" size="4" address="420" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_dt" format="dt" array-dim1="2" array-dim2="2" size="8" address="436" mem-size="32" synchro="MASTER"/>
-      </Block>
-      <Block name="MyWOBlock" mode="WRITE-ONLY" size="530" address="33996" mem-size="1170">
-        <Register name="WO_int8" format="int8" array-dim1="10" array-dim2="1" size="1" address="0" mem-size="10" synchro="SLAVE"/>
-        <Register name="WO_uint8" format="uint8" array-dim1="10" array-dim2="1" size="1" address="10" mem-size="10" synchro="SLAVE"/>
-        <Register name="WO_int16" format="int16" array-dim1="10" array-dim2="1" size="2" address="20" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_uint16" format="uint16" array-dim1="10" array-dim2="1" size="2" address="40" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_int32" format="int32" array-dim1="10" array-dim2="1" size="4" address="60" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_uint32" format="uint32" array-dim1="10" array-dim2="1" size="4" address="100" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_float32" format="float32" array-dim1="10" array-dim2="1" size="4" address="140" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_string" format="string" string-len="64" array-dim1="10" array-dim2="1" size="1" address="180" mem-size="650" synchro="SLAVE"/>
-        <Register name="WO_date" format="date" array-dim1="10" array-dim2="1" size="8" address="830" mem-size="80" synchro="SLAVE"/>
-        <Register name="WO_char" format="char" array-dim1="10" array-dim2="1" size="1" address="910" mem-size="10" synchro="SLAVE"/>
-        <Register name="WO_byte" format="byte" array-dim1="10" array-dim2="1" size="1" address="920" mem-size="10" synchro="SLAVE"/>
-        <Register name="WO_word" format="word" array-dim1="10" array-dim2="1" size="2" address="930" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_dword" format="dword" array-dim1="10" array-dim2="1" size="4" address="950" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_int" format="int" array-dim1="10" array-dim2="1" size="2" address="990" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_dint" format="dint" array-dim1="10" array-dim2="1" size="4" address="1010" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_real" format="real" array-dim1="10" array-dim2="1" size="4" address="1050" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_dt" format="dt" array-dim1="10" array-dim2="1" size="8" address="1090" mem-size="80" synchro="SLAVE"/>
-      </Block>
-      <Instance label="testDevice1" address="0"/>
-      <Instance label="testDevice2" address="1"/>
-    </SILECS-Class>
-  </SILECS-Mapping>
-</SILECS-Param>
diff --git a/silecs-codegen/src/xml/test/generated_temp/client/Beckhoff_CX9020.silecsparam b/silecs-codegen/src/xml/test/generated_temp/client/Beckhoff_CX9020.silecsparam
deleted file mode 100644
index f5e916f36708ebf81d9ff33e56d2dbef8e6e6f77..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/client/Beckhoff_CX9020.silecsparam
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0"?>
-<SILECS-Param silecs-version="DEV">
-  <Mapping-Info>
-    <Owner user-login="schwinn"/>
-    <Generation date="2016-07-29 16:19:24.416758"/>
-    <Deployment checksum="427563505"/>
-  </Mapping-Info>
-  <SILECS-Mapping plc-name="Beckhoff_CX9020" plc-brand="BECKHOFF" plc-system="TWINCat" plc-model="CX9020" protocol="BLOCK_MODE" address="24576" domain="NotUsed" used-mem="TODO">
-    <SILECS-Class name="SilecsHeader" version="1.0.0" address="24576" used-mem="MW12288..MW12313 / 26 words">
-      <Block name="hdrBlk" mode="READ-ONLY" size="14" address="24576" mem-size="52">
-        <Register name="_version" format="string" string-len="16" array-dim1="1" array-dim2="1" size="1" address="0" mem-size="17" synchro="MASTER"/>
-        <Register name="_checksum" format="uint32" array-dim1="1" array-dim2="1" size="4" address="20" mem-size="4" synchro="MASTER"/>
-        <Register name="_user" format="string" string-len="16" array-dim1="1" array-dim2="1" size="1" address="24" mem-size="17" synchro="MASTER"/>
-        <Register name="_date" format="dt" array-dim1="1" array-dim2="1" size="8" address="44" mem-size="8" synchro="MASTER"/>
-      </Block>
-      <Instance label="SilecsHeader" address="0"/>
-    </SILECS-Class>
-    <SILECS-Class name="AllTypes" version="0.1.0" address="24628" used-mem="MW12314..MW14081 / 1768 words">
-      <Block name="MyROBlock" mode="READ-ONLY" size="53" address="24628" mem-size="128">
-        <Register name="RO_int8" format="int8" array-dim1="1" array-dim2="1" size="1" address="0" mem-size="1" synchro="MASTER"/>
-        <Register name="RO_uint8" format="uint8" array-dim1="1" array-dim2="1" size="1" address="2" mem-size="1" synchro="MASTER"/>
-        <Register name="RO_int16" format="int16" array-dim1="1" array-dim2="1" size="2" address="4" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_uint16" format="uint16" array-dim1="1" array-dim2="1" size="2" address="6" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_int32" format="int32" array-dim1="1" array-dim2="1" size="4" address="8" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_uint32" format="uint32" array-dim1="1" array-dim2="1" size="4" address="12" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_float32" format="float32" array-dim1="1" array-dim2="1" size="4" address="16" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_string" format="string" string-len="64" array-dim1="1" array-dim2="1" size="1" address="20" mem-size="65" synchro="MASTER"/>
-        <Register name="RO_date" format="date" array-dim1="1" array-dim2="1" size="8" address="88" mem-size="8" synchro="MASTER"/>
-        <Register name="RO_char" format="char" array-dim1="1" array-dim2="1" size="1" address="96" mem-size="1" synchro="MASTER"/>
-        <Register name="RO_byte" format="byte" array-dim1="1" array-dim2="1" size="1" address="98" mem-size="1" synchro="MASTER"/>
-        <Register name="RO_word" format="word" array-dim1="1" array-dim2="1" size="2" address="100" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_dword" format="dword" array-dim1="1" array-dim2="1" size="4" address="104" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_int" format="int" array-dim1="1" array-dim2="1" size="2" address="108" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_dint" format="dint" array-dim1="1" array-dim2="1" size="4" address="112" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_real" format="real" array-dim1="1" array-dim2="1" size="4" address="116" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_dt" format="dt" array-dim1="1" array-dim2="1" size="8" address="120" mem-size="8" synchro="MASTER"/>
-      </Block>
-      <Block name="MyRWBlock" mode="READ-WRITE" size="212" address="24884" mem-size="468">
-        <Register name="RW_int8" format="int8" array-dim1="2" array-dim2="2" size="1" address="0" mem-size="4" synchro="MASTER"/>
-        <Register name="RW_uint8" format="uint8" array-dim1="2" array-dim2="2" size="1" address="4" mem-size="4" synchro="MASTER"/>
-        <Register name="RW_int16" format="int16" array-dim1="2" array-dim2="2" size="2" address="8" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_uint16" format="uint16" array-dim1="2" array-dim2="2" size="2" address="16" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_int32" format="int32" array-dim1="2" array-dim2="2" size="4" address="24" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_uint32" format="uint32" array-dim1="2" array-dim2="2" size="4" address="40" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_float32" format="float32" array-dim1="2" array-dim2="2" size="4" address="56" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_string" format="string" string-len="64" array-dim1="2" array-dim2="2" size="1" address="72" mem-size="260" synchro="MASTER"/>
-        <Register name="RW_date" format="date" array-dim1="2" array-dim2="2" size="8" address="332" mem-size="32" synchro="MASTER"/>
-        <Register name="RW_char" format="char" array-dim1="2" array-dim2="2" size="1" address="364" mem-size="4" synchro="MASTER"/>
-        <Register name="RW_byte" format="byte" array-dim1="2" array-dim2="2" size="1" address="368" mem-size="4" synchro="MASTER"/>
-        <Register name="RW_word" format="word" array-dim1="2" array-dim2="2" size="2" address="372" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_dword" format="dword" array-dim1="2" array-dim2="2" size="4" address="380" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_int" format="int" array-dim1="2" array-dim2="2" size="2" address="396" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_dint" format="dint" array-dim1="2" array-dim2="2" size="4" address="404" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_real" format="real" array-dim1="2" array-dim2="2" size="4" address="420" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_dt" format="dt" array-dim1="2" array-dim2="2" size="8" address="436" mem-size="32" synchro="MASTER"/>
-      </Block>
-      <Block name="MyWOBlock" mode="WRITE-ONLY" size="530" address="25820" mem-size="1172">
-        <Register name="WO_int8" format="int8" array-dim1="10" array-dim2="1" size="1" address="0" mem-size="10" synchro="SLAVE"/>
-        <Register name="WO_uint8" format="uint8" array-dim1="10" array-dim2="1" size="1" address="10" mem-size="10" synchro="SLAVE"/>
-        <Register name="WO_int16" format="int16" array-dim1="10" array-dim2="1" size="2" address="20" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_uint16" format="uint16" array-dim1="10" array-dim2="1" size="2" address="40" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_int32" format="int32" array-dim1="10" array-dim2="1" size="4" address="60" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_uint32" format="uint32" array-dim1="10" array-dim2="1" size="4" address="100" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_float32" format="float32" array-dim1="10" array-dim2="1" size="4" address="140" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_string" format="string" string-len="64" array-dim1="10" array-dim2="1" size="1" address="180" mem-size="650" synchro="SLAVE"/>
-        <Register name="WO_date" format="date" array-dim1="10" array-dim2="1" size="8" address="832" mem-size="80" synchro="SLAVE"/>
-        <Register name="WO_char" format="char" array-dim1="10" array-dim2="1" size="1" address="912" mem-size="10" synchro="SLAVE"/>
-        <Register name="WO_byte" format="byte" array-dim1="10" array-dim2="1" size="1" address="922" mem-size="10" synchro="SLAVE"/>
-        <Register name="WO_word" format="word" array-dim1="10" array-dim2="1" size="2" address="932" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_dword" format="dword" array-dim1="10" array-dim2="1" size="4" address="952" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_int" format="int" array-dim1="10" array-dim2="1" size="2" address="992" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_dint" format="dint" array-dim1="10" array-dim2="1" size="4" address="1012" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_real" format="real" array-dim1="10" array-dim2="1" size="4" address="1052" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_dt" format="dt" array-dim1="10" array-dim2="1" size="8" address="1092" mem-size="80" synchro="SLAVE"/>
-      </Block>
-      <Instance label="testDevice1" address="0"/>
-      <Instance label="testDevice2" address="1"/>
-    </SILECS-Class>
-  </SILECS-Mapping>
-</SILECS-Param>
diff --git a/silecs-codegen/src/xml/test/generated_temp/client/Rabbit_BlockMode.silecsparam b/silecs-codegen/src/xml/test/generated_temp/client/Rabbit_BlockMode.silecsparam
deleted file mode 100644
index 349284c2853f00bc5372b6ee46a6063e79d6258a..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/client/Rabbit_BlockMode.silecsparam
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0"?>
-<SILECS-Param silecs-version="DEV">
-  <Mapping-Info>
-    <Owner user-login="schwinn"/>
-    <Generation date="2016-07-29 16:19:24.470371"/>
-    <Deployment checksum="3940683809"/>
-  </Mapping-Info>
-  <SILECS-Mapping plc-name="Rabbit_BlockMode" plc-brand="DIGI" plc-system="Standard-C" plc-model="Rabbit_RCM_4010" protocol="BLOCK_MODE" address="0" domain="NotUsed" used-mem="TODO">
-    <SILECS-Class name="SilecsHeader" version="1.0.0" address="0" used-mem="MW0..MW21 / 22 words">
-      <Block name="hdrBlk" mode="READ-ONLY" size="14" address="0" mem-size="44">
-        <Register name="_version" format="string" string-len="16" array-dim1="1" array-dim2="1" size="1" address="0" mem-size="16" synchro="MASTER"/>
-        <Register name="_checksum" format="uint32" array-dim1="1" array-dim2="1" size="4" address="16" mem-size="4" synchro="MASTER"/>
-        <Register name="_user" format="string" string-len="16" array-dim1="1" array-dim2="1" size="1" address="20" mem-size="16" synchro="MASTER"/>
-        <Register name="_date" format="dt" array-dim1="1" array-dim2="1" size="8" address="36" mem-size="8" synchro="MASTER"/>
-      </Block>
-      <Instance label="SilecsHeader" address="0"/>
-    </SILECS-Class>
-    <SILECS-Class name="AllTypes" version="0.1.0" address="44" used-mem="MW22..MW1821 / 1800 words">
-      <Block name="MyROBlock" mode="READ-ONLY" size="53" address="44" mem-size="120">
-        <Register name="RO_int8" format="int8" array-dim1="1" array-dim2="1" size="1" address="0" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_uint8" format="uint8" array-dim1="1" array-dim2="1" size="1" address="2" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_int16" format="int16" array-dim1="1" array-dim2="1" size="2" address="4" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_uint16" format="uint16" array-dim1="1" array-dim2="1" size="2" address="6" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_int32" format="int32" array-dim1="1" array-dim2="1" size="4" address="8" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_uint32" format="uint32" array-dim1="1" array-dim2="1" size="4" address="12" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_float32" format="float32" array-dim1="1" array-dim2="1" size="4" address="16" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_string" format="string" string-len="64" array-dim1="1" array-dim2="1" size="1" address="20" mem-size="64" synchro="MASTER"/>
-        <Register name="RO_date" format="date" array-dim1="1" array-dim2="1" size="8" address="84" mem-size="8" synchro="MASTER"/>
-        <Register name="RO_char" format="char" array-dim1="1" array-dim2="1" size="1" address="92" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_byte" format="byte" array-dim1="1" array-dim2="1" size="1" address="94" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_word" format="word" array-dim1="1" array-dim2="1" size="2" address="96" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_dword" format="dword" array-dim1="1" array-dim2="1" size="4" address="98" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_int" format="int" array-dim1="1" array-dim2="1" size="2" address="102" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_dint" format="dint" array-dim1="1" array-dim2="1" size="4" address="104" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_real" format="real" array-dim1="1" array-dim2="1" size="4" address="108" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_dt" format="dt" array-dim1="1" array-dim2="1" size="8" address="112" mem-size="8" synchro="MASTER"/>
-      </Block>
-      <Block name="MyRWBlock" mode="READ-WRITE" size="212" address="284" mem-size="480">
-        <Register name="RW_int8" format="int8" array-dim1="2" array-dim2="2" size="1" address="0" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_uint8" format="uint8" array-dim1="2" array-dim2="2" size="1" address="8" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_int16" format="int16" array-dim1="2" array-dim2="2" size="2" address="16" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_uint16" format="uint16" array-dim1="2" array-dim2="2" size="2" address="24" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_int32" format="int32" array-dim1="2" array-dim2="2" size="4" address="32" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_uint32" format="uint32" array-dim1="2" array-dim2="2" size="4" address="48" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_float32" format="float32" array-dim1="2" array-dim2="2" size="4" address="64" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_string" format="string" string-len="64" array-dim1="2" array-dim2="2" size="1" address="80" mem-size="256" synchro="MASTER"/>
-        <Register name="RW_date" format="date" array-dim1="2" array-dim2="2" size="8" address="336" mem-size="32" synchro="MASTER"/>
-        <Register name="RW_char" format="char" array-dim1="2" array-dim2="2" size="1" address="368" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_byte" format="byte" array-dim1="2" array-dim2="2" size="1" address="376" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_word" format="word" array-dim1="2" array-dim2="2" size="2" address="384" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_dword" format="dword" array-dim1="2" array-dim2="2" size="4" address="392" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_int" format="int" array-dim1="2" array-dim2="2" size="2" address="408" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_dint" format="dint" array-dim1="2" array-dim2="2" size="4" address="416" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_real" format="real" array-dim1="2" array-dim2="2" size="4" address="432" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_dt" format="dt" array-dim1="2" array-dim2="2" size="8" address="448" mem-size="32" synchro="MASTER"/>
-      </Block>
-      <Block name="MyWOBlock" mode="WRITE-ONLY" size="530" address="1244" mem-size="1200">
-        <Register name="WO_int8" format="int8" array-dim1="10" array-dim2="1" size="1" address="0" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_uint8" format="uint8" array-dim1="10" array-dim2="1" size="1" address="20" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_int16" format="int16" array-dim1="10" array-dim2="1" size="2" address="40" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_uint16" format="uint16" array-dim1="10" array-dim2="1" size="2" address="60" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_int32" format="int32" array-dim1="10" array-dim2="1" size="4" address="80" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_uint32" format="uint32" array-dim1="10" array-dim2="1" size="4" address="120" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_float32" format="float32" array-dim1="10" array-dim2="1" size="4" address="160" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_string" format="string" string-len="64" array-dim1="10" array-dim2="1" size="1" address="200" mem-size="640" synchro="SLAVE"/>
-        <Register name="WO_date" format="date" array-dim1="10" array-dim2="1" size="8" address="840" mem-size="80" synchro="SLAVE"/>
-        <Register name="WO_char" format="char" array-dim1="10" array-dim2="1" size="1" address="920" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_byte" format="byte" array-dim1="10" array-dim2="1" size="1" address="940" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_word" format="word" array-dim1="10" array-dim2="1" size="2" address="960" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_dword" format="dword" array-dim1="10" array-dim2="1" size="4" address="980" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_int" format="int" array-dim1="10" array-dim2="1" size="2" address="1020" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_dint" format="dint" array-dim1="10" array-dim2="1" size="4" address="1040" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_real" format="real" array-dim1="10" array-dim2="1" size="4" address="1080" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_dt" format="dt" array-dim1="10" array-dim2="1" size="8" address="1120" mem-size="80" synchro="SLAVE"/>
-      </Block>
-      <Instance label="testDevice1" address="0"/>
-      <Instance label="testDevice2" address="1"/>
-    </SILECS-Class>
-  </SILECS-Mapping>
-</SILECS-Param>
diff --git a/silecs-codegen/src/xml/test/generated_temp/client/Rabbit_DeviceMode.silecsparam b/silecs-codegen/src/xml/test/generated_temp/client/Rabbit_DeviceMode.silecsparam
deleted file mode 100644
index 0acebed29d2cd6e5a35d85802ee1489764428001..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/client/Rabbit_DeviceMode.silecsparam
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0"?>
-<SILECS-Param silecs-version="DEV">
-  <Mapping-Info>
-    <Owner user-login="schwinn"/>
-    <Generation date="2016-07-29 16:19:24.457239"/>
-    <Deployment checksum="3940683809"/>
-  </Mapping-Info>
-  <SILECS-Mapping plc-name="Rabbit_DeviceMode" plc-brand="DIGI" plc-system="Standard-C" plc-model="Rabbit_RCM_4010" protocol="DEVICE_MODE" address="0" domain="NotUsed" used-mem="TODO">
-    <SILECS-Class name="SilecsHeader" version="1.0.0" address="0" used-mem="MW0..MW21 / 22 words">
-      <Block name="hdrBlk" mode="READ-ONLY" size="14" address="0" mem-size="44">
-        <Register name="_version" format="string" string-len="16" array-dim1="1" array-dim2="1" size="1" address="0" mem-size="16" synchro="MASTER"/>
-        <Register name="_checksum" format="uint32" array-dim1="1" array-dim2="1" size="4" address="16" mem-size="4" synchro="MASTER"/>
-        <Register name="_user" format="string" string-len="16" array-dim1="1" array-dim2="1" size="1" address="20" mem-size="16" synchro="MASTER"/>
-        <Register name="_date" format="dt" array-dim1="1" array-dim2="1" size="8" address="36" mem-size="8" synchro="MASTER"/>
-      </Block>
-      <Instance label="SilecsHeader" address="0"/>
-    </SILECS-Class>
-    <SILECS-Class name="AllTypes" version="0.1.0" address="44" used-mem="MW22..MW1821 / 1800 words">
-      <Block name="MyROBlock" mode="READ-ONLY" size="53" address="0" mem-size="120">
-        <Register name="RO_int8" format="int8" array-dim1="1" array-dim2="1" size="1" address="0" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_uint8" format="uint8" array-dim1="1" array-dim2="1" size="1" address="2" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_int16" format="int16" array-dim1="1" array-dim2="1" size="2" address="4" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_uint16" format="uint16" array-dim1="1" array-dim2="1" size="2" address="6" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_int32" format="int32" array-dim1="1" array-dim2="1" size="4" address="8" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_uint32" format="uint32" array-dim1="1" array-dim2="1" size="4" address="12" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_float32" format="float32" array-dim1="1" array-dim2="1" size="4" address="16" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_string" format="string" string-len="64" array-dim1="1" array-dim2="1" size="1" address="20" mem-size="64" synchro="MASTER"/>
-        <Register name="RO_date" format="date" array-dim1="1" array-dim2="1" size="8" address="84" mem-size="8" synchro="MASTER"/>
-        <Register name="RO_char" format="char" array-dim1="1" array-dim2="1" size="1" address="92" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_byte" format="byte" array-dim1="1" array-dim2="1" size="1" address="94" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_word" format="word" array-dim1="1" array-dim2="1" size="2" address="96" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_dword" format="dword" array-dim1="1" array-dim2="1" size="4" address="98" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_int" format="int" array-dim1="1" array-dim2="1" size="2" address="102" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_dint" format="dint" array-dim1="1" array-dim2="1" size="4" address="104" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_real" format="real" array-dim1="1" array-dim2="1" size="4" address="108" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_dt" format="dt" array-dim1="1" array-dim2="1" size="8" address="112" mem-size="8" synchro="MASTER"/>
-      </Block>
-      <Block name="MyRWBlock" mode="READ-WRITE" size="212" address="120" mem-size="480">
-        <Register name="RW_int8" format="int8" array-dim1="2" array-dim2="2" size="1" address="0" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_uint8" format="uint8" array-dim1="2" array-dim2="2" size="1" address="8" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_int16" format="int16" array-dim1="2" array-dim2="2" size="2" address="16" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_uint16" format="uint16" array-dim1="2" array-dim2="2" size="2" address="24" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_int32" format="int32" array-dim1="2" array-dim2="2" size="4" address="32" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_uint32" format="uint32" array-dim1="2" array-dim2="2" size="4" address="48" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_float32" format="float32" array-dim1="2" array-dim2="2" size="4" address="64" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_string" format="string" string-len="64" array-dim1="2" array-dim2="2" size="1" address="80" mem-size="256" synchro="MASTER"/>
-        <Register name="RW_date" format="date" array-dim1="2" array-dim2="2" size="8" address="336" mem-size="32" synchro="MASTER"/>
-        <Register name="RW_char" format="char" array-dim1="2" array-dim2="2" size="1" address="368" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_byte" format="byte" array-dim1="2" array-dim2="2" size="1" address="376" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_word" format="word" array-dim1="2" array-dim2="2" size="2" address="384" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_dword" format="dword" array-dim1="2" array-dim2="2" size="4" address="392" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_int" format="int" array-dim1="2" array-dim2="2" size="2" address="408" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_dint" format="dint" array-dim1="2" array-dim2="2" size="4" address="416" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_real" format="real" array-dim1="2" array-dim2="2" size="4" address="432" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_dt" format="dt" array-dim1="2" array-dim2="2" size="8" address="448" mem-size="32" synchro="MASTER"/>
-      </Block>
-      <Block name="MyWOBlock" mode="WRITE-ONLY" size="530" address="600" mem-size="1200">
-        <Register name="WO_int8" format="int8" array-dim1="10" array-dim2="1" size="1" address="0" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_uint8" format="uint8" array-dim1="10" array-dim2="1" size="1" address="20" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_int16" format="int16" array-dim1="10" array-dim2="1" size="2" address="40" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_uint16" format="uint16" array-dim1="10" array-dim2="1" size="2" address="60" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_int32" format="int32" array-dim1="10" array-dim2="1" size="4" address="80" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_uint32" format="uint32" array-dim1="10" array-dim2="1" size="4" address="120" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_float32" format="float32" array-dim1="10" array-dim2="1" size="4" address="160" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_string" format="string" string-len="64" array-dim1="10" array-dim2="1" size="1" address="200" mem-size="640" synchro="SLAVE"/>
-        <Register name="WO_date" format="date" array-dim1="10" array-dim2="1" size="8" address="840" mem-size="80" synchro="SLAVE"/>
-        <Register name="WO_char" format="char" array-dim1="10" array-dim2="1" size="1" address="920" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_byte" format="byte" array-dim1="10" array-dim2="1" size="1" address="940" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_word" format="word" array-dim1="10" array-dim2="1" size="2" address="960" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_dword" format="dword" array-dim1="10" array-dim2="1" size="4" address="980" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_int" format="int" array-dim1="10" array-dim2="1" size="2" address="1020" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_dint" format="dint" array-dim1="10" array-dim2="1" size="4" address="1040" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_real" format="real" array-dim1="10" array-dim2="1" size="4" address="1080" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_dt" format="dt" array-dim1="10" array-dim2="1" size="8" address="1120" mem-size="80" synchro="SLAVE"/>
-      </Block>
-      <Instance label="testDevice1" address="44"/>
-      <Instance label="testDevice2" address="1844"/>
-    </SILECS-Class>
-  </SILECS-Mapping>
-</SILECS-Param>
diff --git a/silecs-codegen/src/xml/test/generated_temp/client/Schneider_M340.silecsparam b/silecs-codegen/src/xml/test/generated_temp/client/Schneider_M340.silecsparam
deleted file mode 100644
index a8c8f00ff2f3889f5a76734262b4d4b8fab28199..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/client/Schneider_M340.silecsparam
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0"?>
-<SILECS-Param silecs-version="DEV">
-  <Mapping-Info>
-    <Owner user-login="schwinn"/>
-    <Generation date="2016-07-29 16:19:24.447006"/>
-    <Deployment checksum="3940683809"/>
-  </Mapping-Info>
-  <SILECS-Mapping plc-name="Schneider_M340" plc-brand="SCHNEIDER" plc-system="UNITY Pro" plc-model="M340" protocol="BLOCK_MODE" address="0" domain="NotUsed" used-mem="TODO">
-    <SILECS-Class name="SilecsHeader" version="1.0.0" address="0" used-mem="MW0..MW21 / 22 words">
-      <Block name="hdrBlk" mode="READ-ONLY" size="14" address="0" mem-size="44">
-        <Register name="_version" format="string" string-len="16" array-dim1="1" array-dim2="1" size="1" address="0" mem-size="16" synchro="MASTER"/>
-        <Register name="_checksum" format="uint32" array-dim1="1" array-dim2="1" size="4" address="16" mem-size="4" synchro="MASTER"/>
-        <Register name="_user" format="string" string-len="16" array-dim1="1" array-dim2="1" size="1" address="20" mem-size="16" synchro="MASTER"/>
-        <Register name="_date" format="dt" array-dim1="1" array-dim2="1" size="8" address="36" mem-size="8" synchro="MASTER"/>
-      </Block>
-      <Instance label="SilecsHeader" address="0"/>
-    </SILECS-Class>
-    <SILECS-Class name="AllTypes" version="0.1.0" address="44" used-mem="MW22..MW1801 / 1780 words">
-      <Block name="MyROBlock" mode="READ-ONLY" size="53" address="44" mem-size="124">
-        <Register name="RO_int8" format="int8" array-dim1="1" array-dim2="1" size="1" address="0" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_uint8" format="uint8" array-dim1="1" array-dim2="1" size="1" address="2" mem-size="1" synchro="MASTER"/>
-        <Register name="RO_int16" format="int16" array-dim1="1" array-dim2="1" size="2" address="4" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_uint16" format="uint16" array-dim1="1" array-dim2="1" size="2" address="6" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_int32" format="int32" array-dim1="1" array-dim2="1" size="4" address="8" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_uint32" format="uint32" array-dim1="1" array-dim2="1" size="4" address="12" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_float32" format="float32" array-dim1="1" array-dim2="1" size="4" address="16" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_string" format="string" string-len="64" array-dim1="1" array-dim2="1" size="1" address="20" mem-size="64" synchro="MASTER"/>
-        <Register name="RO_date" format="date" array-dim1="1" array-dim2="1" size="8" address="84" mem-size="8" synchro="MASTER"/>
-        <Register name="RO_char" format="char" array-dim1="1" array-dim2="1" size="1" address="92" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_byte" format="byte" array-dim1="1" array-dim2="1" size="1" address="94" mem-size="1" synchro="MASTER"/>
-        <Register name="RO_word" format="word" array-dim1="1" array-dim2="1" size="2" address="96" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_dword" format="dword" array-dim1="1" array-dim2="1" size="4" address="100" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_int" format="int" array-dim1="1" array-dim2="1" size="2" address="104" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_dint" format="dint" array-dim1="1" array-dim2="1" size="4" address="108" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_real" format="real" array-dim1="1" array-dim2="1" size="4" address="112" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_dt" format="dt" array-dim1="1" array-dim2="1" size="8" address="116" mem-size="8" synchro="MASTER"/>
-      </Block>
-      <Block name="MyRWBlock" mode="READ-WRITE" size="212" address="292" mem-size="472">
-        <Register name="RW_int8" format="int8" array-dim1="2" array-dim2="2" size="1" address="0" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_uint8" format="uint8" array-dim1="2" array-dim2="2" size="1" address="8" mem-size="4" synchro="MASTER"/>
-        <Register name="RW_int16" format="int16" array-dim1="2" array-dim2="2" size="2" address="12" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_uint16" format="uint16" array-dim1="2" array-dim2="2" size="2" address="20" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_int32" format="int32" array-dim1="2" array-dim2="2" size="4" address="28" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_uint32" format="uint32" array-dim1="2" array-dim2="2" size="4" address="44" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_float32" format="float32" array-dim1="2" array-dim2="2" size="4" address="60" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_string" format="string" string-len="64" array-dim1="2" array-dim2="2" size="1" address="76" mem-size="256" synchro="MASTER"/>
-        <Register name="RW_date" format="date" array-dim1="2" array-dim2="2" size="8" address="332" mem-size="32" synchro="MASTER"/>
-        <Register name="RW_char" format="char" array-dim1="2" array-dim2="2" size="1" address="364" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_byte" format="byte" array-dim1="2" array-dim2="2" size="1" address="372" mem-size="4" synchro="MASTER"/>
-        <Register name="RW_word" format="word" array-dim1="2" array-dim2="2" size="2" address="376" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_dword" format="dword" array-dim1="2" array-dim2="2" size="4" address="384" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_int" format="int" array-dim1="2" array-dim2="2" size="2" address="400" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_dint" format="dint" array-dim1="2" array-dim2="2" size="4" address="408" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_real" format="real" array-dim1="2" array-dim2="2" size="4" address="424" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_dt" format="dt" array-dim1="2" array-dim2="2" size="8" address="440" mem-size="32" synchro="MASTER"/>
-      </Block>
-      <Block name="MyWOBlock" mode="WRITE-ONLY" size="530" address="1236" mem-size="1184">
-        <Register name="WO_int8" format="int8" array-dim1="10" array-dim2="1" size="1" address="0" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_uint8" format="uint8" array-dim1="10" array-dim2="1" size="1" address="20" mem-size="10" synchro="SLAVE"/>
-        <Register name="WO_int16" format="int16" array-dim1="10" array-dim2="1" size="2" address="30" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_uint16" format="uint16" array-dim1="10" array-dim2="1" size="2" address="50" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_int32" format="int32" array-dim1="10" array-dim2="1" size="4" address="72" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_uint32" format="uint32" array-dim1="10" array-dim2="1" size="4" address="112" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_float32" format="float32" array-dim1="10" array-dim2="1" size="4" address="152" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_string" format="string" string-len="64" array-dim1="10" array-dim2="1" size="1" address="192" mem-size="640" synchro="SLAVE"/>
-        <Register name="WO_date" format="date" array-dim1="10" array-dim2="1" size="8" address="832" mem-size="80" synchro="SLAVE"/>
-        <Register name="WO_char" format="char" array-dim1="10" array-dim2="1" size="1" address="912" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_byte" format="byte" array-dim1="10" array-dim2="1" size="1" address="932" mem-size="10" synchro="SLAVE"/>
-        <Register name="WO_word" format="word" array-dim1="10" array-dim2="1" size="2" address="942" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_dword" format="dword" array-dim1="10" array-dim2="1" size="4" address="964" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_int" format="int" array-dim1="10" array-dim2="1" size="2" address="1004" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_dint" format="dint" array-dim1="10" array-dim2="1" size="4" address="1024" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_real" format="real" array-dim1="10" array-dim2="1" size="4" address="1064" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_dt" format="dt" array-dim1="10" array-dim2="1" size="8" address="1104" mem-size="80" synchro="SLAVE"/>
-      </Block>
-      <Instance label="testDevice1" address="0"/>
-      <Instance label="testDevice2" address="1"/>
-    </SILECS-Class>
-  </SILECS-Mapping>
-</SILECS-Param>
diff --git a/silecs-codegen/src/xml/test/generated_temp/client/Schneider_PremiumQuantum.silecsparam b/silecs-codegen/src/xml/test/generated_temp/client/Schneider_PremiumQuantum.silecsparam
deleted file mode 100644
index 9dddebd217b8e0dc5797343cad7db92ec7f3206b..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/client/Schneider_PremiumQuantum.silecsparam
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0"?>
-<SILECS-Param silecs-version="DEV">
-  <Mapping-Info>
-    <Owner user-login="schwinn"/>
-    <Generation date="2016-07-29 16:19:24.431938"/>
-    <Deployment checksum="3940683809"/>
-  </Mapping-Info>
-  <SILECS-Mapping plc-name="Schneider_PremiumQuantum" plc-brand="SCHNEIDER" plc-system="UNITY Pro" plc-model="Premium" protocol="BLOCK_MODE" address="0" domain="NotUsed" used-mem="TODO">
-    <SILECS-Class name="SilecsHeader" version="1.0.0" address="0" used-mem="MW0..MW21 / 22 words">
-      <Block name="hdrBlk" mode="READ-ONLY" size="14" address="0" mem-size="44">
-        <Register name="_version" format="string" string-len="16" array-dim1="1" array-dim2="1" size="1" address="0" mem-size="16" synchro="MASTER"/>
-        <Register name="_checksum" format="uint32" array-dim1="1" array-dim2="1" size="4" address="16" mem-size="4" synchro="MASTER"/>
-        <Register name="_user" format="string" string-len="16" array-dim1="1" array-dim2="1" size="1" address="20" mem-size="16" synchro="MASTER"/>
-        <Register name="_date" format="dt" array-dim1="1" array-dim2="1" size="8" address="36" mem-size="8" synchro="MASTER"/>
-      </Block>
-      <Instance label="SilecsHeader" address="0"/>
-    </SILECS-Class>
-    <SILECS-Class name="AllTypes" version="0.1.0" address="44" used-mem="MW22..MW1793 / 1772 words">
-      <Block name="MyROBlock" mode="READ-ONLY" size="53" address="44" mem-size="120">
-        <Register name="RO_int8" format="int8" array-dim1="1" array-dim2="1" size="1" address="0" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_uint8" format="uint8" array-dim1="1" array-dim2="1" size="1" address="2" mem-size="1" synchro="MASTER"/>
-        <Register name="RO_int16" format="int16" array-dim1="1" array-dim2="1" size="2" address="4" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_uint16" format="uint16" array-dim1="1" array-dim2="1" size="2" address="6" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_int32" format="int32" array-dim1="1" array-dim2="1" size="4" address="8" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_uint32" format="uint32" array-dim1="1" array-dim2="1" size="4" address="12" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_float32" format="float32" array-dim1="1" array-dim2="1" size="4" address="16" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_string" format="string" string-len="64" array-dim1="1" array-dim2="1" size="1" address="20" mem-size="64" synchro="MASTER"/>
-        <Register name="RO_date" format="date" array-dim1="1" array-dim2="1" size="8" address="84" mem-size="8" synchro="MASTER"/>
-        <Register name="RO_char" format="char" array-dim1="1" array-dim2="1" size="1" address="92" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_byte" format="byte" array-dim1="1" array-dim2="1" size="1" address="94" mem-size="1" synchro="MASTER"/>
-        <Register name="RO_word" format="word" array-dim1="1" array-dim2="1" size="2" address="96" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_dword" format="dword" array-dim1="1" array-dim2="1" size="4" address="98" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_int" format="int" array-dim1="1" array-dim2="1" size="2" address="102" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_dint" format="dint" array-dim1="1" array-dim2="1" size="4" address="104" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_real" format="real" array-dim1="1" array-dim2="1" size="4" address="108" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_dt" format="dt" array-dim1="1" array-dim2="1" size="8" address="112" mem-size="8" synchro="MASTER"/>
-      </Block>
-      <Block name="MyRWBlock" mode="READ-WRITE" size="212" address="284" mem-size="472">
-        <Register name="RW_int8" format="int8" array-dim1="2" array-dim2="2" size="1" address="0" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_uint8" format="uint8" array-dim1="2" array-dim2="2" size="1" address="8" mem-size="4" synchro="MASTER"/>
-        <Register name="RW_int16" format="int16" array-dim1="2" array-dim2="2" size="2" address="12" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_uint16" format="uint16" array-dim1="2" array-dim2="2" size="2" address="20" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_int32" format="int32" array-dim1="2" array-dim2="2" size="4" address="28" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_uint32" format="uint32" array-dim1="2" array-dim2="2" size="4" address="44" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_float32" format="float32" array-dim1="2" array-dim2="2" size="4" address="60" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_string" format="string" string-len="64" array-dim1="2" array-dim2="2" size="1" address="76" mem-size="256" synchro="MASTER"/>
-        <Register name="RW_date" format="date" array-dim1="2" array-dim2="2" size="8" address="332" mem-size="32" synchro="MASTER"/>
-        <Register name="RW_char" format="char" array-dim1="2" array-dim2="2" size="1" address="364" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_byte" format="byte" array-dim1="2" array-dim2="2" size="1" address="372" mem-size="4" synchro="MASTER"/>
-        <Register name="RW_word" format="word" array-dim1="2" array-dim2="2" size="2" address="376" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_dword" format="dword" array-dim1="2" array-dim2="2" size="4" address="384" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_int" format="int" array-dim1="2" array-dim2="2" size="2" address="400" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_dint" format="dint" array-dim1="2" array-dim2="2" size="4" address="408" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_real" format="real" array-dim1="2" array-dim2="2" size="4" address="424" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_dt" format="dt" array-dim1="2" array-dim2="2" size="8" address="440" mem-size="32" synchro="MASTER"/>
-      </Block>
-      <Block name="MyWOBlock" mode="WRITE-ONLY" size="530" address="1228" mem-size="1180">
-        <Register name="WO_int8" format="int8" array-dim1="10" array-dim2="1" size="1" address="0" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_uint8" format="uint8" array-dim1="10" array-dim2="1" size="1" address="20" mem-size="10" synchro="SLAVE"/>
-        <Register name="WO_int16" format="int16" array-dim1="10" array-dim2="1" size="2" address="30" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_uint16" format="uint16" array-dim1="10" array-dim2="1" size="2" address="50" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_int32" format="int32" array-dim1="10" array-dim2="1" size="4" address="70" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_uint32" format="uint32" array-dim1="10" array-dim2="1" size="4" address="110" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_float32" format="float32" array-dim1="10" array-dim2="1" size="4" address="150" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_string" format="string" string-len="64" array-dim1="10" array-dim2="1" size="1" address="190" mem-size="640" synchro="SLAVE"/>
-        <Register name="WO_date" format="date" array-dim1="10" array-dim2="1" size="8" address="830" mem-size="80" synchro="SLAVE"/>
-        <Register name="WO_char" format="char" array-dim1="10" array-dim2="1" size="1" address="910" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_byte" format="byte" array-dim1="10" array-dim2="1" size="1" address="930" mem-size="10" synchro="SLAVE"/>
-        <Register name="WO_word" format="word" array-dim1="10" array-dim2="1" size="2" address="940" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_dword" format="dword" array-dim1="10" array-dim2="1" size="4" address="960" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_int" format="int" array-dim1="10" array-dim2="1" size="2" address="1000" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_dint" format="dint" array-dim1="10" array-dim2="1" size="4" address="1020" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_real" format="real" array-dim1="10" array-dim2="1" size="4" address="1060" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_dt" format="dt" array-dim1="10" array-dim2="1" size="8" address="1100" mem-size="80" synchro="SLAVE"/>
-      </Block>
-      <Instance label="testDevice1" address="0"/>
-      <Instance label="testDevice2" address="1"/>
-    </SILECS-Class>
-  </SILECS-Mapping>
-</SILECS-Param>
diff --git a/silecs-codegen/src/xml/test/generated_temp/client/Siemens_Step7Block.silecsparam b/silecs-codegen/src/xml/test/generated_temp/client/Siemens_Step7Block.silecsparam
deleted file mode 100644
index 3601d7de8286331ccc1aeb1dee847e4f662dd23f..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/client/Siemens_Step7Block.silecsparam
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0"?>
-<SILECS-Param silecs-version="DEV">
-  <Mapping-Info>
-    <Owner user-login="schwinn"/>
-    <Generation date="2016-07-29 16:19:24.348636"/>
-    <Deployment checksum="3940683809"/>
-  </Mapping-Info>
-  <SILECS-Mapping plc-name="Siemens_Step7Block" plc-brand="SIEMENS" plc-system="STEP-7" plc-model="SIMATIC_S7-300" protocol="DEVICE_MODE" address="0" domain="NotUsed" used-mem="TODO">
-    <SILECS-Class name="SilecsHeader" version="1.0.0" address="0" used-mem="DB0..DB0 / 48 bytes">
-      <Block name="hdrBlk" mode="READ-ONLY" size="14" address="0" mem-size="48">
-        <Register name="_version" format="string" string-len="16" array-dim1="1" array-dim2="1" size="1" address="0" mem-size="18" synchro="MASTER"/>
-        <Register name="_checksum" format="uint32" array-dim1="1" array-dim2="1" size="4" address="18" mem-size="4" synchro="MASTER"/>
-        <Register name="_user" format="string" string-len="16" array-dim1="1" array-dim2="1" size="1" address="22" mem-size="18" synchro="MASTER"/>
-        <Register name="_date" format="dt" array-dim1="1" array-dim2="1" size="8" address="40" mem-size="8" synchro="MASTER"/>
-      </Block>
-      <Instance label="SilecsHeader" address="0"/>
-    </SILECS-Class>
-    <SILECS-Class name="AllTypes" version="0.1.0" address="1" used-mem="DB1..DB2 / 3540 bytes">
-      <Block name="MyROBlock" mode="READ-ONLY" size="53" address="0" mem-size="118">
-        <Register name="RO_int8" format="int8" array-dim1="1" array-dim2="1" size="1" address="0" mem-size="1" synchro="MASTER"/>
-        <Register name="RO_uint8" format="uint8" array-dim1="1" array-dim2="1" size="1" address="1" mem-size="1" synchro="MASTER"/>
-        <Register name="RO_int16" format="int16" array-dim1="1" array-dim2="1" size="2" address="2" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_uint16" format="uint16" array-dim1="1" array-dim2="1" size="2" address="4" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_int32" format="int32" array-dim1="1" array-dim2="1" size="4" address="6" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_uint32" format="uint32" array-dim1="1" array-dim2="1" size="4" address="10" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_float32" format="float32" array-dim1="1" array-dim2="1" size="4" address="14" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_string" format="string" string-len="64" array-dim1="1" array-dim2="1" size="1" address="18" mem-size="66" synchro="MASTER"/>
-        <Register name="RO_date" format="date" array-dim1="1" array-dim2="1" size="8" address="84" mem-size="8" synchro="MASTER"/>
-        <Register name="RO_char" format="char" array-dim1="1" array-dim2="1" size="1" address="92" mem-size="1" synchro="MASTER"/>
-        <Register name="RO_byte" format="byte" array-dim1="1" array-dim2="1" size="1" address="93" mem-size="1" synchro="MASTER"/>
-        <Register name="RO_word" format="word" array-dim1="1" array-dim2="1" size="2" address="94" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_dword" format="dword" array-dim1="1" array-dim2="1" size="4" address="96" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_int" format="int" array-dim1="1" array-dim2="1" size="2" address="100" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_dint" format="dint" array-dim1="1" array-dim2="1" size="4" address="102" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_real" format="real" array-dim1="1" array-dim2="1" size="4" address="106" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_dt" format="dt" array-dim1="1" array-dim2="1" size="8" address="110" mem-size="8" synchro="MASTER"/>
-      </Block>
-      <Block name="MyRWBlock" mode="READ-WRITE" size="212" address="118" mem-size="472">
-        <Register name="RW_int8" format="int8" array-dim1="2" array-dim2="2" size="1" address="0" mem-size="4" synchro="MASTER"/>
-        <Register name="RW_uint8" format="uint8" array-dim1="2" array-dim2="2" size="1" address="4" mem-size="4" synchro="MASTER"/>
-        <Register name="RW_int16" format="int16" array-dim1="2" array-dim2="2" size="2" address="8" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_uint16" format="uint16" array-dim1="2" array-dim2="2" size="2" address="16" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_int32" format="int32" array-dim1="2" array-dim2="2" size="4" address="24" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_uint32" format="uint32" array-dim1="2" array-dim2="2" size="4" address="40" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_float32" format="float32" array-dim1="2" array-dim2="2" size="4" address="56" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_string" format="string" string-len="64" array-dim1="2" array-dim2="2" size="1" address="72" mem-size="264" synchro="MASTER"/>
-        <Register name="RW_date" format="date" array-dim1="2" array-dim2="2" size="8" address="336" mem-size="32" synchro="MASTER"/>
-        <Register name="RW_char" format="char" array-dim1="2" array-dim2="2" size="1" address="368" mem-size="4" synchro="MASTER"/>
-        <Register name="RW_byte" format="byte" array-dim1="2" array-dim2="2" size="1" address="372" mem-size="4" synchro="MASTER"/>
-        <Register name="RW_word" format="word" array-dim1="2" array-dim2="2" size="2" address="376" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_dword" format="dword" array-dim1="2" array-dim2="2" size="4" address="384" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_int" format="int" array-dim1="2" array-dim2="2" size="2" address="400" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_dint" format="dint" array-dim1="2" array-dim2="2" size="4" address="408" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_real" format="real" array-dim1="2" array-dim2="2" size="4" address="424" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_dt" format="dt" array-dim1="2" array-dim2="2" size="8" address="440" mem-size="32" synchro="MASTER"/>
-      </Block>
-      <Block name="MyWOBlock" mode="WRITE-ONLY" size="530" address="590" mem-size="1180">
-        <Register name="WO_int8" format="int8" array-dim1="10" array-dim2="1" size="1" address="0" mem-size="10" synchro="SLAVE"/>
-        <Register name="WO_uint8" format="uint8" array-dim1="10" array-dim2="1" size="1" address="10" mem-size="10" synchro="SLAVE"/>
-        <Register name="WO_int16" format="int16" array-dim1="10" array-dim2="1" size="2" address="20" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_uint16" format="uint16" array-dim1="10" array-dim2="1" size="2" address="40" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_int32" format="int32" array-dim1="10" array-dim2="1" size="4" address="60" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_uint32" format="uint32" array-dim1="10" array-dim2="1" size="4" address="100" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_float32" format="float32" array-dim1="10" array-dim2="1" size="4" address="140" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_string" format="string" string-len="64" array-dim1="10" array-dim2="1" size="1" address="180" mem-size="660" synchro="SLAVE"/>
-        <Register name="WO_date" format="date" array-dim1="10" array-dim2="1" size="8" address="840" mem-size="80" synchro="SLAVE"/>
-        <Register name="WO_char" format="char" array-dim1="10" array-dim2="1" size="1" address="920" mem-size="10" synchro="SLAVE"/>
-        <Register name="WO_byte" format="byte" array-dim1="10" array-dim2="1" size="1" address="930" mem-size="10" synchro="SLAVE"/>
-        <Register name="WO_word" format="word" array-dim1="10" array-dim2="1" size="2" address="940" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_dword" format="dword" array-dim1="10" array-dim2="1" size="4" address="960" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_int" format="int" array-dim1="10" array-dim2="1" size="2" address="1000" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_dint" format="dint" array-dim1="10" array-dim2="1" size="4" address="1020" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_real" format="real" array-dim1="10" array-dim2="1" size="4" address="1060" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_dt" format="dt" array-dim1="10" array-dim2="1" size="8" address="1100" mem-size="80" synchro="SLAVE"/>
-      </Block>
-      <Instance label="testDevice1" address="1"/>
-      <Instance label="testDevice2" address="2"/>
-    </SILECS-Class>
-  </SILECS-Mapping>
-</SILECS-Param>
diff --git a/silecs-codegen/src/xml/test/generated_temp/client/Siemens_Step7Device.silecsparam b/silecs-codegen/src/xml/test/generated_temp/client/Siemens_Step7Device.silecsparam
deleted file mode 100644
index de865eabda9e14527ef17b89fbe1b8f37379df9f..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/client/Siemens_Step7Device.silecsparam
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0"?>
-<SILECS-Param silecs-version="DEV">
-  <Mapping-Info>
-    <Owner user-login="schwinn"/>
-    <Generation date="2016-07-29 16:19:24.364106"/>
-    <Deployment checksum="3940683809"/>
-  </Mapping-Info>
-  <SILECS-Mapping plc-name="Siemens_Step7Device" plc-brand="SIEMENS" plc-system="STEP-7" plc-model="SIMATIC_S7-300" protocol="BLOCK_MODE" address="0" domain="NotUsed" used-mem="TODO">
-    <SILECS-Class name="SilecsHeader" version="1.0.0" address="0" used-mem="DB0..DB0 / 48 bytes">
-      <Block name="hdrBlk" mode="READ-ONLY" size="14" address="0" mem-size="48">
-        <Register name="_version" format="string" string-len="16" array-dim1="1" array-dim2="1" size="1" address="0" mem-size="18" synchro="MASTER"/>
-        <Register name="_checksum" format="uint32" array-dim1="1" array-dim2="1" size="4" address="18" mem-size="4" synchro="MASTER"/>
-        <Register name="_user" format="string" string-len="16" array-dim1="1" array-dim2="1" size="1" address="22" mem-size="18" synchro="MASTER"/>
-        <Register name="_date" format="dt" array-dim1="1" array-dim2="1" size="8" address="40" mem-size="8" synchro="MASTER"/>
-      </Block>
-      <Instance label="SilecsHeader" address="0"/>
-    </SILECS-Class>
-    <SILECS-Class name="AllTypes" version="0.1.0" address="1" used-mem="DB1..DB3 / 3540 bytes">
-      <Block name="MyROBlock" mode="READ-ONLY" size="53" address="1" mem-size="118">
-        <Register name="RO_int8" format="int8" array-dim1="1" array-dim2="1" size="1" address="0" mem-size="1" synchro="MASTER"/>
-        <Register name="RO_uint8" format="uint8" array-dim1="1" array-dim2="1" size="1" address="1" mem-size="1" synchro="MASTER"/>
-        <Register name="RO_int16" format="int16" array-dim1="1" array-dim2="1" size="2" address="2" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_uint16" format="uint16" array-dim1="1" array-dim2="1" size="2" address="4" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_int32" format="int32" array-dim1="1" array-dim2="1" size="4" address="6" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_uint32" format="uint32" array-dim1="1" array-dim2="1" size="4" address="10" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_float32" format="float32" array-dim1="1" array-dim2="1" size="4" address="14" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_string" format="string" string-len="64" array-dim1="1" array-dim2="1" size="1" address="18" mem-size="66" synchro="MASTER"/>
-        <Register name="RO_date" format="date" array-dim1="1" array-dim2="1" size="8" address="84" mem-size="8" synchro="MASTER"/>
-        <Register name="RO_char" format="char" array-dim1="1" array-dim2="1" size="1" address="92" mem-size="1" synchro="MASTER"/>
-        <Register name="RO_byte" format="byte" array-dim1="1" array-dim2="1" size="1" address="93" mem-size="1" synchro="MASTER"/>
-        <Register name="RO_word" format="word" array-dim1="1" array-dim2="1" size="2" address="94" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_dword" format="dword" array-dim1="1" array-dim2="1" size="4" address="96" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_int" format="int" array-dim1="1" array-dim2="1" size="2" address="100" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_dint" format="dint" array-dim1="1" array-dim2="1" size="4" address="102" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_real" format="real" array-dim1="1" array-dim2="1" size="4" address="106" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_dt" format="dt" array-dim1="1" array-dim2="1" size="8" address="110" mem-size="8" synchro="MASTER"/>
-      </Block>
-      <Block name="MyRWBlock" mode="READ-WRITE" size="212" address="2" mem-size="472">
-        <Register name="RW_int8" format="int8" array-dim1="2" array-dim2="2" size="1" address="0" mem-size="4" synchro="MASTER"/>
-        <Register name="RW_uint8" format="uint8" array-dim1="2" array-dim2="2" size="1" address="4" mem-size="4" synchro="MASTER"/>
-        <Register name="RW_int16" format="int16" array-dim1="2" array-dim2="2" size="2" address="8" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_uint16" format="uint16" array-dim1="2" array-dim2="2" size="2" address="16" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_int32" format="int32" array-dim1="2" array-dim2="2" size="4" address="24" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_uint32" format="uint32" array-dim1="2" array-dim2="2" size="4" address="40" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_float32" format="float32" array-dim1="2" array-dim2="2" size="4" address="56" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_string" format="string" string-len="64" array-dim1="2" array-dim2="2" size="1" address="72" mem-size="264" synchro="MASTER"/>
-        <Register name="RW_date" format="date" array-dim1="2" array-dim2="2" size="8" address="336" mem-size="32" synchro="MASTER"/>
-        <Register name="RW_char" format="char" array-dim1="2" array-dim2="2" size="1" address="368" mem-size="4" synchro="MASTER"/>
-        <Register name="RW_byte" format="byte" array-dim1="2" array-dim2="2" size="1" address="372" mem-size="4" synchro="MASTER"/>
-        <Register name="RW_word" format="word" array-dim1="2" array-dim2="2" size="2" address="376" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_dword" format="dword" array-dim1="2" array-dim2="2" size="4" address="384" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_int" format="int" array-dim1="2" array-dim2="2" size="2" address="400" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_dint" format="dint" array-dim1="2" array-dim2="2" size="4" address="408" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_real" format="real" array-dim1="2" array-dim2="2" size="4" address="424" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_dt" format="dt" array-dim1="2" array-dim2="2" size="8" address="440" mem-size="32" synchro="MASTER"/>
-      </Block>
-      <Block name="MyWOBlock" mode="WRITE-ONLY" size="530" address="3" mem-size="1180">
-        <Register name="WO_int8" format="int8" array-dim1="10" array-dim2="1" size="1" address="0" mem-size="10" synchro="SLAVE"/>
-        <Register name="WO_uint8" format="uint8" array-dim1="10" array-dim2="1" size="1" address="10" mem-size="10" synchro="SLAVE"/>
-        <Register name="WO_int16" format="int16" array-dim1="10" array-dim2="1" size="2" address="20" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_uint16" format="uint16" array-dim1="10" array-dim2="1" size="2" address="40" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_int32" format="int32" array-dim1="10" array-dim2="1" size="4" address="60" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_uint32" format="uint32" array-dim1="10" array-dim2="1" size="4" address="100" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_float32" format="float32" array-dim1="10" array-dim2="1" size="4" address="140" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_string" format="string" string-len="64" array-dim1="10" array-dim2="1" size="1" address="180" mem-size="660" synchro="SLAVE"/>
-        <Register name="WO_date" format="date" array-dim1="10" array-dim2="1" size="8" address="840" mem-size="80" synchro="SLAVE"/>
-        <Register name="WO_char" format="char" array-dim1="10" array-dim2="1" size="1" address="920" mem-size="10" synchro="SLAVE"/>
-        <Register name="WO_byte" format="byte" array-dim1="10" array-dim2="1" size="1" address="930" mem-size="10" synchro="SLAVE"/>
-        <Register name="WO_word" format="word" array-dim1="10" array-dim2="1" size="2" address="940" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_dword" format="dword" array-dim1="10" array-dim2="1" size="4" address="960" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_int" format="int" array-dim1="10" array-dim2="1" size="2" address="1000" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_dint" format="dint" array-dim1="10" array-dim2="1" size="4" address="1020" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_real" format="real" array-dim1="10" array-dim2="1" size="4" address="1060" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_dt" format="dt" array-dim1="10" array-dim2="1" size="8" address="1100" mem-size="80" synchro="SLAVE"/>
-      </Block>
-      <Instance label="testDevice1" address="0"/>
-      <Instance label="testDevice2" address="1"/>
-    </SILECS-Class>
-  </SILECS-Mapping>
-</SILECS-Param>
diff --git a/silecs-codegen/src/xml/test/generated_temp/client/Siemens_TiaBlock.silecsparam b/silecs-codegen/src/xml/test/generated_temp/client/Siemens_TiaBlock.silecsparam
deleted file mode 100644
index 7e47ba3f074d2711ff1b55ac1c9c6ed512afbcfa..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/client/Siemens_TiaBlock.silecsparam
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0"?>
-<SILECS-Param silecs-version="DEV">
-  <Mapping-Info>
-    <Owner user-login="schwinn"/>
-    <Generation date="2016-07-29 16:19:24.337376"/>
-    <Deployment checksum="3940683809"/>
-  </Mapping-Info>
-  <SILECS-Mapping plc-name="Siemens_TiaBlock" plc-brand="SIEMENS" plc-system="TIA-PORTAL" plc-model="SIMATIC_S7-300" protocol="BLOCK_MODE" address="0" domain="NotUsed" used-mem="TODO">
-    <SILECS-Class name="SilecsHeader" version="1.0.0" address="0" used-mem="DB0..DB0 / 48 bytes">
-      <Block name="hdrBlk" mode="READ-ONLY" size="14" address="0" mem-size="48">
-        <Register name="_version" format="string" string-len="16" array-dim1="1" array-dim2="1" size="1" address="0" mem-size="18" synchro="MASTER"/>
-        <Register name="_checksum" format="uint32" array-dim1="1" array-dim2="1" size="4" address="18" mem-size="4" synchro="MASTER"/>
-        <Register name="_user" format="string" string-len="16" array-dim1="1" array-dim2="1" size="1" address="22" mem-size="18" synchro="MASTER"/>
-        <Register name="_date" format="dt" array-dim1="1" array-dim2="1" size="8" address="40" mem-size="8" synchro="MASTER"/>
-      </Block>
-      <Instance label="SilecsHeader" address="0"/>
-    </SILECS-Class>
-    <SILECS-Class name="AllTypes" version="0.1.0" address="1" used-mem="DB1..DB3 / 3540 bytes">
-      <Block name="MyROBlock" mode="READ-ONLY" size="53" address="1" mem-size="118">
-        <Register name="RO_int8" format="int8" array-dim1="1" array-dim2="1" size="1" address="0" mem-size="1" synchro="MASTER"/>
-        <Register name="RO_uint8" format="uint8" array-dim1="1" array-dim2="1" size="1" address="1" mem-size="1" synchro="MASTER"/>
-        <Register name="RO_int16" format="int16" array-dim1="1" array-dim2="1" size="2" address="2" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_uint16" format="uint16" array-dim1="1" array-dim2="1" size="2" address="4" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_int32" format="int32" array-dim1="1" array-dim2="1" size="4" address="6" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_uint32" format="uint32" array-dim1="1" array-dim2="1" size="4" address="10" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_float32" format="float32" array-dim1="1" array-dim2="1" size="4" address="14" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_string" format="string" string-len="64" array-dim1="1" array-dim2="1" size="1" address="18" mem-size="66" synchro="MASTER"/>
-        <Register name="RO_date" format="date" array-dim1="1" array-dim2="1" size="8" address="84" mem-size="8" synchro="MASTER"/>
-        <Register name="RO_char" format="char" array-dim1="1" array-dim2="1" size="1" address="92" mem-size="1" synchro="MASTER"/>
-        <Register name="RO_byte" format="byte" array-dim1="1" array-dim2="1" size="1" address="93" mem-size="1" synchro="MASTER"/>
-        <Register name="RO_word" format="word" array-dim1="1" array-dim2="1" size="2" address="94" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_dword" format="dword" array-dim1="1" array-dim2="1" size="4" address="96" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_int" format="int" array-dim1="1" array-dim2="1" size="2" address="100" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_dint" format="dint" array-dim1="1" array-dim2="1" size="4" address="102" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_real" format="real" array-dim1="1" array-dim2="1" size="4" address="106" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_dt" format="dt" array-dim1="1" array-dim2="1" size="8" address="110" mem-size="8" synchro="MASTER"/>
-      </Block>
-      <Block name="MyRWBlock" mode="READ-WRITE" size="212" address="2" mem-size="472">
-        <Register name="RW_int8" format="int8" array-dim1="2" array-dim2="2" size="1" address="0" mem-size="4" synchro="MASTER"/>
-        <Register name="RW_uint8" format="uint8" array-dim1="2" array-dim2="2" size="1" address="4" mem-size="4" synchro="MASTER"/>
-        <Register name="RW_int16" format="int16" array-dim1="2" array-dim2="2" size="2" address="8" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_uint16" format="uint16" array-dim1="2" array-dim2="2" size="2" address="16" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_int32" format="int32" array-dim1="2" array-dim2="2" size="4" address="24" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_uint32" format="uint32" array-dim1="2" array-dim2="2" size="4" address="40" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_float32" format="float32" array-dim1="2" array-dim2="2" size="4" address="56" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_string" format="string" string-len="64" array-dim1="2" array-dim2="2" size="1" address="72" mem-size="264" synchro="MASTER"/>
-        <Register name="RW_date" format="date" array-dim1="2" array-dim2="2" size="8" address="336" mem-size="32" synchro="MASTER"/>
-        <Register name="RW_char" format="char" array-dim1="2" array-dim2="2" size="1" address="368" mem-size="4" synchro="MASTER"/>
-        <Register name="RW_byte" format="byte" array-dim1="2" array-dim2="2" size="1" address="372" mem-size="4" synchro="MASTER"/>
-        <Register name="RW_word" format="word" array-dim1="2" array-dim2="2" size="2" address="376" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_dword" format="dword" array-dim1="2" array-dim2="2" size="4" address="384" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_int" format="int" array-dim1="2" array-dim2="2" size="2" address="400" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_dint" format="dint" array-dim1="2" array-dim2="2" size="4" address="408" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_real" format="real" array-dim1="2" array-dim2="2" size="4" address="424" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_dt" format="dt" array-dim1="2" array-dim2="2" size="8" address="440" mem-size="32" synchro="MASTER"/>
-      </Block>
-      <Block name="MyWOBlock" mode="WRITE-ONLY" size="530" address="3" mem-size="1180">
-        <Register name="WO_int8" format="int8" array-dim1="10" array-dim2="1" size="1" address="0" mem-size="10" synchro="SLAVE"/>
-        <Register name="WO_uint8" format="uint8" array-dim1="10" array-dim2="1" size="1" address="10" mem-size="10" synchro="SLAVE"/>
-        <Register name="WO_int16" format="int16" array-dim1="10" array-dim2="1" size="2" address="20" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_uint16" format="uint16" array-dim1="10" array-dim2="1" size="2" address="40" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_int32" format="int32" array-dim1="10" array-dim2="1" size="4" address="60" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_uint32" format="uint32" array-dim1="10" array-dim2="1" size="4" address="100" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_float32" format="float32" array-dim1="10" array-dim2="1" size="4" address="140" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_string" format="string" string-len="64" array-dim1="10" array-dim2="1" size="1" address="180" mem-size="660" synchro="SLAVE"/>
-        <Register name="WO_date" format="date" array-dim1="10" array-dim2="1" size="8" address="840" mem-size="80" synchro="SLAVE"/>
-        <Register name="WO_char" format="char" array-dim1="10" array-dim2="1" size="1" address="920" mem-size="10" synchro="SLAVE"/>
-        <Register name="WO_byte" format="byte" array-dim1="10" array-dim2="1" size="1" address="930" mem-size="10" synchro="SLAVE"/>
-        <Register name="WO_word" format="word" array-dim1="10" array-dim2="1" size="2" address="940" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_dword" format="dword" array-dim1="10" array-dim2="1" size="4" address="960" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_int" format="int" array-dim1="10" array-dim2="1" size="2" address="1000" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_dint" format="dint" array-dim1="10" array-dim2="1" size="4" address="1020" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_real" format="real" array-dim1="10" array-dim2="1" size="4" address="1060" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_dt" format="dt" array-dim1="10" array-dim2="1" size="8" address="1100" mem-size="80" synchro="SLAVE"/>
-      </Block>
-      <Instance label="testDevice1" address="0"/>
-      <Instance label="testDevice2" address="1"/>
-    </SILECS-Class>
-  </SILECS-Mapping>
-</SILECS-Param>
diff --git a/silecs-codegen/src/xml/test/generated_temp/client/Siemens_TiaDevice.silecsparam b/silecs-codegen/src/xml/test/generated_temp/client/Siemens_TiaDevice.silecsparam
deleted file mode 100644
index 1a2c0eb842eab6d21e3326c0ac93716b521370f3..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/client/Siemens_TiaDevice.silecsparam
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0"?>
-<SILECS-Param silecs-version="DEV">
-  <Mapping-Info>
-    <Owner user-login="schwinn"/>
-    <Generation date="2016-07-29 16:19:24.320037"/>
-    <Deployment checksum="3940683809"/>
-  </Mapping-Info>
-  <SILECS-Mapping plc-name="Siemens_TiaDevice" plc-brand="SIEMENS" plc-system="TIA-PORTAL" plc-model="SIMATIC_S7-300" protocol="DEVICE_MODE" address="0" domain="NotUsed" used-mem="TODO">
-    <SILECS-Class name="SilecsHeader" version="1.0.0" address="0" used-mem="DB0..DB0 / 48 bytes">
-      <Block name="hdrBlk" mode="READ-ONLY" size="14" address="0" mem-size="48">
-        <Register name="_version" format="string" string-len="16" array-dim1="1" array-dim2="1" size="1" address="0" mem-size="18" synchro="MASTER"/>
-        <Register name="_checksum" format="uint32" array-dim1="1" array-dim2="1" size="4" address="18" mem-size="4" synchro="MASTER"/>
-        <Register name="_user" format="string" string-len="16" array-dim1="1" array-dim2="1" size="1" address="22" mem-size="18" synchro="MASTER"/>
-        <Register name="_date" format="dt" array-dim1="1" array-dim2="1" size="8" address="40" mem-size="8" synchro="MASTER"/>
-      </Block>
-      <Instance label="SilecsHeader" address="0"/>
-    </SILECS-Class>
-    <SILECS-Class name="AllTypes" version="0.1.0" address="1" used-mem="DB1..DB2 / 3540 bytes">
-      <Block name="MyROBlock" mode="READ-ONLY" size="53" address="0" mem-size="118">
-        <Register name="RO_int8" format="int8" array-dim1="1" array-dim2="1" size="1" address="0" mem-size="1" synchro="MASTER"/>
-        <Register name="RO_uint8" format="uint8" array-dim1="1" array-dim2="1" size="1" address="1" mem-size="1" synchro="MASTER"/>
-        <Register name="RO_int16" format="int16" array-dim1="1" array-dim2="1" size="2" address="2" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_uint16" format="uint16" array-dim1="1" array-dim2="1" size="2" address="4" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_int32" format="int32" array-dim1="1" array-dim2="1" size="4" address="6" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_uint32" format="uint32" array-dim1="1" array-dim2="1" size="4" address="10" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_float32" format="float32" array-dim1="1" array-dim2="1" size="4" address="14" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_string" format="string" string-len="64" array-dim1="1" array-dim2="1" size="1" address="18" mem-size="66" synchro="MASTER"/>
-        <Register name="RO_date" format="date" array-dim1="1" array-dim2="1" size="8" address="84" mem-size="8" synchro="MASTER"/>
-        <Register name="RO_char" format="char" array-dim1="1" array-dim2="1" size="1" address="92" mem-size="1" synchro="MASTER"/>
-        <Register name="RO_byte" format="byte" array-dim1="1" array-dim2="1" size="1" address="93" mem-size="1" synchro="MASTER"/>
-        <Register name="RO_word" format="word" array-dim1="1" array-dim2="1" size="2" address="94" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_dword" format="dword" array-dim1="1" array-dim2="1" size="4" address="96" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_int" format="int" array-dim1="1" array-dim2="1" size="2" address="100" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_dint" format="dint" array-dim1="1" array-dim2="1" size="4" address="102" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_real" format="real" array-dim1="1" array-dim2="1" size="4" address="106" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_dt" format="dt" array-dim1="1" array-dim2="1" size="8" address="110" mem-size="8" synchro="MASTER"/>
-      </Block>
-      <Block name="MyRWBlock" mode="READ-WRITE" size="212" address="118" mem-size="472">
-        <Register name="RW_int8" format="int8" array-dim1="2" array-dim2="2" size="1" address="0" mem-size="4" synchro="MASTER"/>
-        <Register name="RW_uint8" format="uint8" array-dim1="2" array-dim2="2" size="1" address="4" mem-size="4" synchro="MASTER"/>
-        <Register name="RW_int16" format="int16" array-dim1="2" array-dim2="2" size="2" address="8" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_uint16" format="uint16" array-dim1="2" array-dim2="2" size="2" address="16" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_int32" format="int32" array-dim1="2" array-dim2="2" size="4" address="24" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_uint32" format="uint32" array-dim1="2" array-dim2="2" size="4" address="40" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_float32" format="float32" array-dim1="2" array-dim2="2" size="4" address="56" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_string" format="string" string-len="64" array-dim1="2" array-dim2="2" size="1" address="72" mem-size="264" synchro="MASTER"/>
-        <Register name="RW_date" format="date" array-dim1="2" array-dim2="2" size="8" address="336" mem-size="32" synchro="MASTER"/>
-        <Register name="RW_char" format="char" array-dim1="2" array-dim2="2" size="1" address="368" mem-size="4" synchro="MASTER"/>
-        <Register name="RW_byte" format="byte" array-dim1="2" array-dim2="2" size="1" address="372" mem-size="4" synchro="MASTER"/>
-        <Register name="RW_word" format="word" array-dim1="2" array-dim2="2" size="2" address="376" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_dword" format="dword" array-dim1="2" array-dim2="2" size="4" address="384" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_int" format="int" array-dim1="2" array-dim2="2" size="2" address="400" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_dint" format="dint" array-dim1="2" array-dim2="2" size="4" address="408" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_real" format="real" array-dim1="2" array-dim2="2" size="4" address="424" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_dt" format="dt" array-dim1="2" array-dim2="2" size="8" address="440" mem-size="32" synchro="MASTER"/>
-      </Block>
-      <Block name="MyWOBlock" mode="WRITE-ONLY" size="530" address="590" mem-size="1180">
-        <Register name="WO_int8" format="int8" array-dim1="10" array-dim2="1" size="1" address="0" mem-size="10" synchro="SLAVE"/>
-        <Register name="WO_uint8" format="uint8" array-dim1="10" array-dim2="1" size="1" address="10" mem-size="10" synchro="SLAVE"/>
-        <Register name="WO_int16" format="int16" array-dim1="10" array-dim2="1" size="2" address="20" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_uint16" format="uint16" array-dim1="10" array-dim2="1" size="2" address="40" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_int32" format="int32" array-dim1="10" array-dim2="1" size="4" address="60" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_uint32" format="uint32" array-dim1="10" array-dim2="1" size="4" address="100" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_float32" format="float32" array-dim1="10" array-dim2="1" size="4" address="140" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_string" format="string" string-len="64" array-dim1="10" array-dim2="1" size="1" address="180" mem-size="660" synchro="SLAVE"/>
-        <Register name="WO_date" format="date" array-dim1="10" array-dim2="1" size="8" address="840" mem-size="80" synchro="SLAVE"/>
-        <Register name="WO_char" format="char" array-dim1="10" array-dim2="1" size="1" address="920" mem-size="10" synchro="SLAVE"/>
-        <Register name="WO_byte" format="byte" array-dim1="10" array-dim2="1" size="1" address="930" mem-size="10" synchro="SLAVE"/>
-        <Register name="WO_word" format="word" array-dim1="10" array-dim2="1" size="2" address="940" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_dword" format="dword" array-dim1="10" array-dim2="1" size="4" address="960" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_int" format="int" array-dim1="10" array-dim2="1" size="2" address="1000" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_dint" format="dint" array-dim1="10" array-dim2="1" size="4" address="1020" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_real" format="real" array-dim1="10" array-dim2="1" size="4" address="1060" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_dt" format="dt" array-dim1="10" array-dim2="1" size="8" address="1100" mem-size="80" synchro="SLAVE"/>
-      </Block>
-      <Instance label="testDevice1" address="1"/>
-      <Instance label="testDevice2" address="2"/>
-    </SILECS-Class>
-  </SILECS-Mapping>
-</SILECS-Param>
diff --git a/silecs-codegen/src/xml/test/generated_temp/client/Virtual_SiemensBlock.silecsparam b/silecs-codegen/src/xml/test/generated_temp/client/Virtual_SiemensBlock.silecsparam
deleted file mode 100644
index a5251ea0d379cd63b651a84214ad904491bfeea2..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/client/Virtual_SiemensBlock.silecsparam
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0"?>
-<SILECS-Param silecs-version="DEV">
-  <Mapping-Info>
-    <Owner user-login="schwinn"/>
-    <Generation date="2016-07-29 16:19:24.397579"/>
-    <Deployment checksum="3940683809"/>
-  </Mapping-Info>
-  <SILECS-Mapping plc-name="Virtual_SiemensBlock" plc-brand="SIEMENS" plc-system="SNAP7 linux32" plc-model="SIMATIC_S7-VIRTUAL" protocol="BLOCK_MODE" address="0" domain="NotUsed" used-mem="TODO">
-    <SILECS-Class name="SilecsHeader" version="1.0.0" address="0" used-mem="DB0..DB0 / 48 bytes">
-      <Block name="hdrBlk" mode="READ-ONLY" size="14" address="0" mem-size="48">
-        <Register name="_version" format="string" string-len="16" array-dim1="1" array-dim2="1" size="1" address="0" mem-size="18" synchro="MASTER"/>
-        <Register name="_checksum" format="uint32" array-dim1="1" array-dim2="1" size="4" address="18" mem-size="4" synchro="MASTER"/>
-        <Register name="_user" format="string" string-len="16" array-dim1="1" array-dim2="1" size="1" address="22" mem-size="18" synchro="MASTER"/>
-        <Register name="_date" format="dt" array-dim1="1" array-dim2="1" size="8" address="40" mem-size="8" synchro="MASTER"/>
-      </Block>
-      <Instance label="SilecsHeader" address="0"/>
-    </SILECS-Class>
-    <SILECS-Class name="AllTypes" version="0.1.0" address="1" used-mem="DB1..DB3 / 3540 bytes">
-      <Block name="MyROBlock" mode="READ-ONLY" size="53" address="1" mem-size="118">
-        <Register name="RO_int8" format="int8" array-dim1="1" array-dim2="1" size="1" address="0" mem-size="1" synchro="MASTER"/>
-        <Register name="RO_uint8" format="uint8" array-dim1="1" array-dim2="1" size="1" address="1" mem-size="1" synchro="MASTER"/>
-        <Register name="RO_int16" format="int16" array-dim1="1" array-dim2="1" size="2" address="2" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_uint16" format="uint16" array-dim1="1" array-dim2="1" size="2" address="4" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_int32" format="int32" array-dim1="1" array-dim2="1" size="4" address="6" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_uint32" format="uint32" array-dim1="1" array-dim2="1" size="4" address="10" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_float32" format="float32" array-dim1="1" array-dim2="1" size="4" address="14" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_string" format="string" string-len="64" array-dim1="1" array-dim2="1" size="1" address="18" mem-size="66" synchro="MASTER"/>
-        <Register name="RO_date" format="date" array-dim1="1" array-dim2="1" size="8" address="84" mem-size="8" synchro="MASTER"/>
-        <Register name="RO_char" format="char" array-dim1="1" array-dim2="1" size="1" address="92" mem-size="1" synchro="MASTER"/>
-        <Register name="RO_byte" format="byte" array-dim1="1" array-dim2="1" size="1" address="93" mem-size="1" synchro="MASTER"/>
-        <Register name="RO_word" format="word" array-dim1="1" array-dim2="1" size="2" address="94" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_dword" format="dword" array-dim1="1" array-dim2="1" size="4" address="96" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_int" format="int" array-dim1="1" array-dim2="1" size="2" address="100" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_dint" format="dint" array-dim1="1" array-dim2="1" size="4" address="102" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_real" format="real" array-dim1="1" array-dim2="1" size="4" address="106" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_dt" format="dt" array-dim1="1" array-dim2="1" size="8" address="110" mem-size="8" synchro="MASTER"/>
-      </Block>
-      <Block name="MyRWBlock" mode="READ-WRITE" size="212" address="2" mem-size="472">
-        <Register name="RW_int8" format="int8" array-dim1="2" array-dim2="2" size="1" address="0" mem-size="4" synchro="MASTER"/>
-        <Register name="RW_uint8" format="uint8" array-dim1="2" array-dim2="2" size="1" address="4" mem-size="4" synchro="MASTER"/>
-        <Register name="RW_int16" format="int16" array-dim1="2" array-dim2="2" size="2" address="8" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_uint16" format="uint16" array-dim1="2" array-dim2="2" size="2" address="16" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_int32" format="int32" array-dim1="2" array-dim2="2" size="4" address="24" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_uint32" format="uint32" array-dim1="2" array-dim2="2" size="4" address="40" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_float32" format="float32" array-dim1="2" array-dim2="2" size="4" address="56" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_string" format="string" string-len="64" array-dim1="2" array-dim2="2" size="1" address="72" mem-size="264" synchro="MASTER"/>
-        <Register name="RW_date" format="date" array-dim1="2" array-dim2="2" size="8" address="336" mem-size="32" synchro="MASTER"/>
-        <Register name="RW_char" format="char" array-dim1="2" array-dim2="2" size="1" address="368" mem-size="4" synchro="MASTER"/>
-        <Register name="RW_byte" format="byte" array-dim1="2" array-dim2="2" size="1" address="372" mem-size="4" synchro="MASTER"/>
-        <Register name="RW_word" format="word" array-dim1="2" array-dim2="2" size="2" address="376" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_dword" format="dword" array-dim1="2" array-dim2="2" size="4" address="384" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_int" format="int" array-dim1="2" array-dim2="2" size="2" address="400" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_dint" format="dint" array-dim1="2" array-dim2="2" size="4" address="408" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_real" format="real" array-dim1="2" array-dim2="2" size="4" address="424" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_dt" format="dt" array-dim1="2" array-dim2="2" size="8" address="440" mem-size="32" synchro="MASTER"/>
-      </Block>
-      <Block name="MyWOBlock" mode="WRITE-ONLY" size="530" address="3" mem-size="1180">
-        <Register name="WO_int8" format="int8" array-dim1="10" array-dim2="1" size="1" address="0" mem-size="10" synchro="SLAVE"/>
-        <Register name="WO_uint8" format="uint8" array-dim1="10" array-dim2="1" size="1" address="10" mem-size="10" synchro="SLAVE"/>
-        <Register name="WO_int16" format="int16" array-dim1="10" array-dim2="1" size="2" address="20" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_uint16" format="uint16" array-dim1="10" array-dim2="1" size="2" address="40" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_int32" format="int32" array-dim1="10" array-dim2="1" size="4" address="60" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_uint32" format="uint32" array-dim1="10" array-dim2="1" size="4" address="100" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_float32" format="float32" array-dim1="10" array-dim2="1" size="4" address="140" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_string" format="string" string-len="64" array-dim1="10" array-dim2="1" size="1" address="180" mem-size="660" synchro="SLAVE"/>
-        <Register name="WO_date" format="date" array-dim1="10" array-dim2="1" size="8" address="840" mem-size="80" synchro="SLAVE"/>
-        <Register name="WO_char" format="char" array-dim1="10" array-dim2="1" size="1" address="920" mem-size="10" synchro="SLAVE"/>
-        <Register name="WO_byte" format="byte" array-dim1="10" array-dim2="1" size="1" address="930" mem-size="10" synchro="SLAVE"/>
-        <Register name="WO_word" format="word" array-dim1="10" array-dim2="1" size="2" address="940" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_dword" format="dword" array-dim1="10" array-dim2="1" size="4" address="960" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_int" format="int" array-dim1="10" array-dim2="1" size="2" address="1000" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_dint" format="dint" array-dim1="10" array-dim2="1" size="4" address="1020" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_real" format="real" array-dim1="10" array-dim2="1" size="4" address="1060" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_dt" format="dt" array-dim1="10" array-dim2="1" size="8" address="1100" mem-size="80" synchro="SLAVE"/>
-      </Block>
-      <Instance label="testDevice1" address="0"/>
-      <Instance label="testDevice2" address="1"/>
-    </SILECS-Class>
-  </SILECS-Mapping>
-</SILECS-Param>
diff --git a/silecs-codegen/src/xml/test/generated_temp/client/Virtual_SiemensDevice.silecsparam b/silecs-codegen/src/xml/test/generated_temp/client/Virtual_SiemensDevice.silecsparam
deleted file mode 100644
index 399a2b5e5f19a2c87b985be847da43914bb7c802..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/client/Virtual_SiemensDevice.silecsparam
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0"?>
-<SILECS-Param silecs-version="DEV">
-  <Mapping-Info>
-    <Owner user-login="schwinn"/>
-    <Generation date="2016-07-29 16:19:24.381596"/>
-    <Deployment checksum="3940683809"/>
-  </Mapping-Info>
-  <SILECS-Mapping plc-name="Virtual_SiemensDevice" plc-brand="SIEMENS" plc-system="SNAP7 linux32" plc-model="SIMATIC_S7-VIRTUAL" protocol="DEVICE_MODE" address="0" domain="NotUsed" used-mem="TODO">
-    <SILECS-Class name="SilecsHeader" version="1.0.0" address="0" used-mem="DB0..DB0 / 48 bytes">
-      <Block name="hdrBlk" mode="READ-ONLY" size="14" address="0" mem-size="48">
-        <Register name="_version" format="string" string-len="16" array-dim1="1" array-dim2="1" size="1" address="0" mem-size="18" synchro="MASTER"/>
-        <Register name="_checksum" format="uint32" array-dim1="1" array-dim2="1" size="4" address="18" mem-size="4" synchro="MASTER"/>
-        <Register name="_user" format="string" string-len="16" array-dim1="1" array-dim2="1" size="1" address="22" mem-size="18" synchro="MASTER"/>
-        <Register name="_date" format="dt" array-dim1="1" array-dim2="1" size="8" address="40" mem-size="8" synchro="MASTER"/>
-      </Block>
-      <Instance label="SilecsHeader" address="0"/>
-    </SILECS-Class>
-    <SILECS-Class name="AllTypes" version="0.1.0" address="1" used-mem="DB1..DB2 / 3540 bytes">
-      <Block name="MyROBlock" mode="READ-ONLY" size="53" address="0" mem-size="118">
-        <Register name="RO_int8" format="int8" array-dim1="1" array-dim2="1" size="1" address="0" mem-size="1" synchro="MASTER"/>
-        <Register name="RO_uint8" format="uint8" array-dim1="1" array-dim2="1" size="1" address="1" mem-size="1" synchro="MASTER"/>
-        <Register name="RO_int16" format="int16" array-dim1="1" array-dim2="1" size="2" address="2" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_uint16" format="uint16" array-dim1="1" array-dim2="1" size="2" address="4" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_int32" format="int32" array-dim1="1" array-dim2="1" size="4" address="6" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_uint32" format="uint32" array-dim1="1" array-dim2="1" size="4" address="10" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_float32" format="float32" array-dim1="1" array-dim2="1" size="4" address="14" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_string" format="string" string-len="64" array-dim1="1" array-dim2="1" size="1" address="18" mem-size="66" synchro="MASTER"/>
-        <Register name="RO_date" format="date" array-dim1="1" array-dim2="1" size="8" address="84" mem-size="8" synchro="MASTER"/>
-        <Register name="RO_char" format="char" array-dim1="1" array-dim2="1" size="1" address="92" mem-size="1" synchro="MASTER"/>
-        <Register name="RO_byte" format="byte" array-dim1="1" array-dim2="1" size="1" address="93" mem-size="1" synchro="MASTER"/>
-        <Register name="RO_word" format="word" array-dim1="1" array-dim2="1" size="2" address="94" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_dword" format="dword" array-dim1="1" array-dim2="1" size="4" address="96" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_int" format="int" array-dim1="1" array-dim2="1" size="2" address="100" mem-size="2" synchro="MASTER"/>
-        <Register name="RO_dint" format="dint" array-dim1="1" array-dim2="1" size="4" address="102" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_real" format="real" array-dim1="1" array-dim2="1" size="4" address="106" mem-size="4" synchro="MASTER"/>
-        <Register name="RO_dt" format="dt" array-dim1="1" array-dim2="1" size="8" address="110" mem-size="8" synchro="MASTER"/>
-      </Block>
-      <Block name="MyRWBlock" mode="READ-WRITE" size="212" address="118" mem-size="472">
-        <Register name="RW_int8" format="int8" array-dim1="2" array-dim2="2" size="1" address="0" mem-size="4" synchro="MASTER"/>
-        <Register name="RW_uint8" format="uint8" array-dim1="2" array-dim2="2" size="1" address="4" mem-size="4" synchro="MASTER"/>
-        <Register name="RW_int16" format="int16" array-dim1="2" array-dim2="2" size="2" address="8" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_uint16" format="uint16" array-dim1="2" array-dim2="2" size="2" address="16" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_int32" format="int32" array-dim1="2" array-dim2="2" size="4" address="24" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_uint32" format="uint32" array-dim1="2" array-dim2="2" size="4" address="40" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_float32" format="float32" array-dim1="2" array-dim2="2" size="4" address="56" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_string" format="string" string-len="64" array-dim1="2" array-dim2="2" size="1" address="72" mem-size="264" synchro="MASTER"/>
-        <Register name="RW_date" format="date" array-dim1="2" array-dim2="2" size="8" address="336" mem-size="32" synchro="MASTER"/>
-        <Register name="RW_char" format="char" array-dim1="2" array-dim2="2" size="1" address="368" mem-size="4" synchro="MASTER"/>
-        <Register name="RW_byte" format="byte" array-dim1="2" array-dim2="2" size="1" address="372" mem-size="4" synchro="MASTER"/>
-        <Register name="RW_word" format="word" array-dim1="2" array-dim2="2" size="2" address="376" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_dword" format="dword" array-dim1="2" array-dim2="2" size="4" address="384" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_int" format="int" array-dim1="2" array-dim2="2" size="2" address="400" mem-size="8" synchro="MASTER"/>
-        <Register name="RW_dint" format="dint" array-dim1="2" array-dim2="2" size="4" address="408" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_real" format="real" array-dim1="2" array-dim2="2" size="4" address="424" mem-size="16" synchro="MASTER"/>
-        <Register name="RW_dt" format="dt" array-dim1="2" array-dim2="2" size="8" address="440" mem-size="32" synchro="MASTER"/>
-      </Block>
-      <Block name="MyWOBlock" mode="WRITE-ONLY" size="530" address="590" mem-size="1180">
-        <Register name="WO_int8" format="int8" array-dim1="10" array-dim2="1" size="1" address="0" mem-size="10" synchro="SLAVE"/>
-        <Register name="WO_uint8" format="uint8" array-dim1="10" array-dim2="1" size="1" address="10" mem-size="10" synchro="SLAVE"/>
-        <Register name="WO_int16" format="int16" array-dim1="10" array-dim2="1" size="2" address="20" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_uint16" format="uint16" array-dim1="10" array-dim2="1" size="2" address="40" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_int32" format="int32" array-dim1="10" array-dim2="1" size="4" address="60" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_uint32" format="uint32" array-dim1="10" array-dim2="1" size="4" address="100" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_float32" format="float32" array-dim1="10" array-dim2="1" size="4" address="140" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_string" format="string" string-len="64" array-dim1="10" array-dim2="1" size="1" address="180" mem-size="660" synchro="SLAVE"/>
-        <Register name="WO_date" format="date" array-dim1="10" array-dim2="1" size="8" address="840" mem-size="80" synchro="SLAVE"/>
-        <Register name="WO_char" format="char" array-dim1="10" array-dim2="1" size="1" address="920" mem-size="10" synchro="SLAVE"/>
-        <Register name="WO_byte" format="byte" array-dim1="10" array-dim2="1" size="1" address="930" mem-size="10" synchro="SLAVE"/>
-        <Register name="WO_word" format="word" array-dim1="10" array-dim2="1" size="2" address="940" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_dword" format="dword" array-dim1="10" array-dim2="1" size="4" address="960" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_int" format="int" array-dim1="10" array-dim2="1" size="2" address="1000" mem-size="20" synchro="SLAVE"/>
-        <Register name="WO_dint" format="dint" array-dim1="10" array-dim2="1" size="4" address="1020" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_real" format="real" array-dim1="10" array-dim2="1" size="4" address="1060" mem-size="40" synchro="SLAVE"/>
-        <Register name="WO_dt" format="dt" array-dim1="10" array-dim2="1" size="8" address="1100" mem-size="80" synchro="SLAVE"/>
-      </Block>
-      <Instance label="testDevice1" address="1"/>
-      <Instance label="testDevice2" address="2"/>
-    </SILECS-Class>
-  </SILECS-Mapping>
-</SILECS-Param>
diff --git a/silecs-codegen/src/xml/test/generated_temp/controller/.gitignore b/silecs-codegen/src/xml/test/generated_temp/controller/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..e7a210ec7dcb290f7c9247714741a9caee387a8f
--- /dev/null
+++ b/silecs-codegen/src/xml/test/generated_temp/controller/.gitignore
@@ -0,0 +1,3 @@
+*
+*/
+!.gitignore
\ No newline at end of file
diff --git a/silecs-codegen/src/xml/test/generated_temp/controller/Beckhoff_BC9020.exp b/silecs-codegen/src/xml/test/generated_temp/controller/Beckhoff_BC9020.exp
deleted file mode 100644
index fc2ed288634e65c1c5c351cc8b143e52c7204bfc..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/controller/Beckhoff_BC9020.exp
+++ /dev/null
@@ -1,328 +0,0 @@
-(* +-------------------------------------------------------------------
-* | C.E.R.N Geneva, Switzerland
-* | SILECS - BE/CO-FE
-* | April 2015
-* +-------------------------------------------------------------------
-*
-* Release : SILECS_DEV
-*)
-VAR_GLOBAL
-    (*SilecsHeader/SilecsHeader/hdrBlk *)
-    _version_a781_SilecsHeader AT %MW0: STRING(16):= DEV;
-
-    (*SilecsHeader/SilecsHeader/hdrBlk *)
-    _checksum_a781_SilecsHeader AT %MW9: DWORD:= 2843029646;
-
-    (*SilecsHeader/SilecsHeader/hdrBlk *)
-    _user_a781_SilecsHeader AT %MW11: STRING(16):= 'schwinn';
-
-    (*SilecsHeader/SilecsHeader/hdrBlk *)
-    _date_a781_SilecsHeader AT %MW20: DT:= DT#2016-7-29-16:19:24;
-
-    (*AllTypes/testDevice1/MyROBlock *)
-    RO_int8_a583_testDevice1 AT %MW24: SINT;
-
-    (*AllTypes/testDevice1/MyROBlock *)
-    RO_uint8_a583_testDevice1 AT %MW25: BYTE;
-
-    (*AllTypes/testDevice1/MyROBlock *)
-    RO_int16_a583_testDevice1 AT %MW26: INT;
-
-    (*AllTypes/testDevice1/MyROBlock *)
-    RO_uint16_a583_testDevice1 AT %MW27: WORD;
-
-    (*AllTypes/testDevice1/MyROBlock *)
-    RO_int32_a583_testDevice1 AT %MW28: DINT;
-
-    (*AllTypes/testDevice1/MyROBlock *)
-    RO_uint32_a583_testDevice1 AT %MW30: DWORD;
-
-    (*AllTypes/testDevice1/MyROBlock *)
-    RO_float32_a583_testDevice1 AT %MW32: REAL;
-
-    (*AllTypes/testDevice1/MyROBlock *)
-    RO_string_a583_testDevice1 AT %MW34: STRING(64);
-
-    (*AllTypes/testDevice1/MyROBlock *)
-    RO_date_a583_testDevice1 AT %MW67: DT;
-
-    (*AllTypes/testDevice1/MyROBlock *)
-    RO_char_a583_testDevice1 AT %MW71: SINT;
-
-    (*AllTypes/testDevice1/MyROBlock *)
-    RO_byte_a583_testDevice1 AT %MW72: BYTE;
-
-    (*AllTypes/testDevice1/MyROBlock *)
-    RO_word_a583_testDevice1 AT %MW73: WORD;
-
-    (*AllTypes/testDevice1/MyROBlock *)
-    RO_dword_a583_testDevice1 AT %MW74: DWORD;
-
-    (*AllTypes/testDevice1/MyROBlock *)
-    RO_int_a583_testDevice1 AT %MW76: INT;
-
-    (*AllTypes/testDevice1/MyROBlock *)
-    RO_dint_a583_testDevice1 AT %MW77: DINT;
-
-    (*AllTypes/testDevice1/MyROBlock *)
-    RO_real_a583_testDevice1 AT %MW79: REAL;
-
-    (*AllTypes/testDevice1/MyROBlock *)
-    RO_dt_a583_testDevice1 AT %MW81: DT;
-
-    (*AllTypes/testDevice2/MyROBlock *)
-    RO_int8_a583_testDevice2 AT %MW85: SINT;
-
-    (*AllTypes/testDevice2/MyROBlock *)
-    RO_uint8_a583_testDevice2 AT %MW86: BYTE;
-
-    (*AllTypes/testDevice2/MyROBlock *)
-    RO_int16_a583_testDevice2 AT %MW87: INT;
-
-    (*AllTypes/testDevice2/MyROBlock *)
-    RO_uint16_a583_testDevice2 AT %MW88: WORD;
-
-    (*AllTypes/testDevice2/MyROBlock *)
-    RO_int32_a583_testDevice2 AT %MW89: DINT;
-
-    (*AllTypes/testDevice2/MyROBlock *)
-    RO_uint32_a583_testDevice2 AT %MW91: DWORD;
-
-    (*AllTypes/testDevice2/MyROBlock *)
-    RO_float32_a583_testDevice2 AT %MW93: REAL;
-
-    (*AllTypes/testDevice2/MyROBlock *)
-    RO_string_a583_testDevice2 AT %MW95: STRING(64);
-
-    (*AllTypes/testDevice2/MyROBlock *)
-    RO_date_a583_testDevice2 AT %MW128: DT;
-
-    (*AllTypes/testDevice2/MyROBlock *)
-    RO_char_a583_testDevice2 AT %MW132: SINT;
-
-    (*AllTypes/testDevice2/MyROBlock *)
-    RO_byte_a583_testDevice2 AT %MW133: BYTE;
-
-    (*AllTypes/testDevice2/MyROBlock *)
-    RO_word_a583_testDevice2 AT %MW134: WORD;
-
-    (*AllTypes/testDevice2/MyROBlock *)
-    RO_dword_a583_testDevice2 AT %MW135: DWORD;
-
-    (*AllTypes/testDevice2/MyROBlock *)
-    RO_int_a583_testDevice2 AT %MW137: INT;
-
-    (*AllTypes/testDevice2/MyROBlock *)
-    RO_dint_a583_testDevice2 AT %MW138: DINT;
-
-    (*AllTypes/testDevice2/MyROBlock *)
-    RO_real_a583_testDevice2 AT %MW140: REAL;
-
-    (*AllTypes/testDevice2/MyROBlock *)
-    RO_dt_a583_testDevice2 AT %MW142: DT;
-
-    (*AllTypes/testDevice1/MyRWBlock *)
-    RW_int8_a583_testDevice1 AT %MW146: ARRAY [0..1, 0..1] OF SINT;
-
-    (*AllTypes/testDevice1/MyRWBlock *)
-    RW_uint8_a583_testDevice1 AT %MW148: ARRAY [0..1, 0..1] OF BYTE;
-
-    (*AllTypes/testDevice1/MyRWBlock *)
-    RW_int16_a583_testDevice1 AT %MW150: ARRAY [0..1, 0..1] OF INT;
-
-    (*AllTypes/testDevice1/MyRWBlock *)
-    RW_uint16_a583_testDevice1 AT %MW154: ARRAY [0..1, 0..1] OF WORD;
-
-    (*AllTypes/testDevice1/MyRWBlock *)
-    RW_int32_a583_testDevice1 AT %MW158: ARRAY [0..1, 0..1] OF DINT;
-
-    (*AllTypes/testDevice1/MyRWBlock *)
-    RW_uint32_a583_testDevice1 AT %MW166: ARRAY [0..1, 0..1] OF DWORD;
-
-    (*AllTypes/testDevice1/MyRWBlock *)
-    RW_float32_a583_testDevice1 AT %MW174: ARRAY [0..1, 0..1] OF REAL;
-
-    (*AllTypes/testDevice1/MyRWBlock *)
-    RW_string_a583_testDevice1 AT %MW182: ARRAY [0..1, 0..1] OF STRING(64);
-
-    (*AllTypes/testDevice1/MyRWBlock *)
-    RW_date_a583_testDevice1 AT %MW312: ARRAY [0..1, 0..1] OF DT;
-
-    (*AllTypes/testDevice1/MyRWBlock *)
-    RW_char_a583_testDevice1 AT %MW328: ARRAY [0..1, 0..1] OF SINT;
-
-    (*AllTypes/testDevice1/MyRWBlock *)
-    RW_byte_a583_testDevice1 AT %MW330: ARRAY [0..1, 0..1] OF BYTE;
-
-    (*AllTypes/testDevice1/MyRWBlock *)
-    RW_word_a583_testDevice1 AT %MW332: ARRAY [0..1, 0..1] OF WORD;
-
-    (*AllTypes/testDevice1/MyRWBlock *)
-    RW_dword_a583_testDevice1 AT %MW336: ARRAY [0..1, 0..1] OF DWORD;
-
-    (*AllTypes/testDevice1/MyRWBlock *)
-    RW_int_a583_testDevice1 AT %MW344: ARRAY [0..1, 0..1] OF INT;
-
-    (*AllTypes/testDevice1/MyRWBlock *)
-    RW_dint_a583_testDevice1 AT %MW348: ARRAY [0..1, 0..1] OF DINT;
-
-    (*AllTypes/testDevice1/MyRWBlock *)
-    RW_real_a583_testDevice1 AT %MW356: ARRAY [0..1, 0..1] OF REAL;
-
-    (*AllTypes/testDevice1/MyRWBlock *)
-    RW_dt_a583_testDevice1 AT %MW364: ARRAY [0..1, 0..1] OF DT;
-
-    (*AllTypes/testDevice2/MyRWBlock *)
-    RW_int8_a583_testDevice2 AT %MW380: ARRAY [0..1, 0..1] OF SINT;
-
-    (*AllTypes/testDevice2/MyRWBlock *)
-    RW_uint8_a583_testDevice2 AT %MW382: ARRAY [0..1, 0..1] OF BYTE;
-
-    (*AllTypes/testDevice2/MyRWBlock *)
-    RW_int16_a583_testDevice2 AT %MW384: ARRAY [0..1, 0..1] OF INT;
-
-    (*AllTypes/testDevice2/MyRWBlock *)
-    RW_uint16_a583_testDevice2 AT %MW388: ARRAY [0..1, 0..1] OF WORD;
-
-    (*AllTypes/testDevice2/MyRWBlock *)
-    RW_int32_a583_testDevice2 AT %MW392: ARRAY [0..1, 0..1] OF DINT;
-
-    (*AllTypes/testDevice2/MyRWBlock *)
-    RW_uint32_a583_testDevice2 AT %MW400: ARRAY [0..1, 0..1] OF DWORD;
-
-    (*AllTypes/testDevice2/MyRWBlock *)
-    RW_float32_a583_testDevice2 AT %MW408: ARRAY [0..1, 0..1] OF REAL;
-
-    (*AllTypes/testDevice2/MyRWBlock *)
-    RW_string_a583_testDevice2 AT %MW416: ARRAY [0..1, 0..1] OF STRING(64);
-
-    (*AllTypes/testDevice2/MyRWBlock *)
-    RW_date_a583_testDevice2 AT %MW546: ARRAY [0..1, 0..1] OF DT;
-
-    (*AllTypes/testDevice2/MyRWBlock *)
-    RW_char_a583_testDevice2 AT %MW562: ARRAY [0..1, 0..1] OF SINT;
-
-    (*AllTypes/testDevice2/MyRWBlock *)
-    RW_byte_a583_testDevice2 AT %MW564: ARRAY [0..1, 0..1] OF BYTE;
-
-    (*AllTypes/testDevice2/MyRWBlock *)
-    RW_word_a583_testDevice2 AT %MW566: ARRAY [0..1, 0..1] OF WORD;
-
-    (*AllTypes/testDevice2/MyRWBlock *)
-    RW_dword_a583_testDevice2 AT %MW570: ARRAY [0..1, 0..1] OF DWORD;
-
-    (*AllTypes/testDevice2/MyRWBlock *)
-    RW_int_a583_testDevice2 AT %MW578: ARRAY [0..1, 0..1] OF INT;
-
-    (*AllTypes/testDevice2/MyRWBlock *)
-    RW_dint_a583_testDevice2 AT %MW582: ARRAY [0..1, 0..1] OF DINT;
-
-    (*AllTypes/testDevice2/MyRWBlock *)
-    RW_real_a583_testDevice2 AT %MW590: ARRAY [0..1, 0..1] OF REAL;
-
-    (*AllTypes/testDevice2/MyRWBlock *)
-    RW_dt_a583_testDevice2 AT %MW598: ARRAY [0..1, 0..1] OF DT;
-
-    (*AllTypes/testDevice1/MyWOBlock *)
-    WO_int8_a583_testDevice1 AT %MW614: ARRAY [0..9] OF SINT;
-
-    (*AllTypes/testDevice1/MyWOBlock *)
-    WO_uint8_a583_testDevice1 AT %MW619: ARRAY [0..9] OF BYTE;
-
-    (*AllTypes/testDevice1/MyWOBlock *)
-    WO_int16_a583_testDevice1 AT %MW624: ARRAY [0..9] OF INT;
-
-    (*AllTypes/testDevice1/MyWOBlock *)
-    WO_uint16_a583_testDevice1 AT %MW634: ARRAY [0..9] OF WORD;
-
-    (*AllTypes/testDevice1/MyWOBlock *)
-    WO_int32_a583_testDevice1 AT %MW644: ARRAY [0..9] OF DINT;
-
-    (*AllTypes/testDevice1/MyWOBlock *)
-    WO_uint32_a583_testDevice1 AT %MW664: ARRAY [0..9] OF DWORD;
-
-    (*AllTypes/testDevice1/MyWOBlock *)
-    WO_float32_a583_testDevice1 AT %MW684: ARRAY [0..9] OF REAL;
-
-    (*AllTypes/testDevice1/MyWOBlock *)
-    WO_string_a583_testDevice1 AT %MW704: ARRAY [0..9] OF STRING(64);
-
-    (*AllTypes/testDevice1/MyWOBlock *)
-    WO_date_a583_testDevice1 AT %MW1029: ARRAY [0..9] OF DT;
-
-    (*AllTypes/testDevice1/MyWOBlock *)
-    WO_char_a583_testDevice1 AT %MW1069: ARRAY [0..9] OF SINT;
-
-    (*AllTypes/testDevice1/MyWOBlock *)
-    WO_byte_a583_testDevice1 AT %MW1074: ARRAY [0..9] OF BYTE;
-
-    (*AllTypes/testDevice1/MyWOBlock *)
-    WO_word_a583_testDevice1 AT %MW1079: ARRAY [0..9] OF WORD;
-
-    (*AllTypes/testDevice1/MyWOBlock *)
-    WO_dword_a583_testDevice1 AT %MW1089: ARRAY [0..9] OF DWORD;
-
-    (*AllTypes/testDevice1/MyWOBlock *)
-    WO_int_a583_testDevice1 AT %MW1109: ARRAY [0..9] OF INT;
-
-    (*AllTypes/testDevice1/MyWOBlock *)
-    WO_dint_a583_testDevice1 AT %MW1119: ARRAY [0..9] OF DINT;
-
-    (*AllTypes/testDevice1/MyWOBlock *)
-    WO_real_a583_testDevice1 AT %MW1139: ARRAY [0..9] OF REAL;
-
-    (*AllTypes/testDevice1/MyWOBlock *)
-    WO_dt_a583_testDevice1 AT %MW1159: ARRAY [0..9] OF DT;
-
-    (*AllTypes/testDevice2/MyWOBlock *)
-    WO_int8_a583_testDevice2 AT %MW1199: ARRAY [0..9] OF SINT;
-
-    (*AllTypes/testDevice2/MyWOBlock *)
-    WO_uint8_a583_testDevice2 AT %MW1204: ARRAY [0..9] OF BYTE;
-
-    (*AllTypes/testDevice2/MyWOBlock *)
-    WO_int16_a583_testDevice2 AT %MW1209: ARRAY [0..9] OF INT;
-
-    (*AllTypes/testDevice2/MyWOBlock *)
-    WO_uint16_a583_testDevice2 AT %MW1219: ARRAY [0..9] OF WORD;
-
-    (*AllTypes/testDevice2/MyWOBlock *)
-    WO_int32_a583_testDevice2 AT %MW1229: ARRAY [0..9] OF DINT;
-
-    (*AllTypes/testDevice2/MyWOBlock *)
-    WO_uint32_a583_testDevice2 AT %MW1249: ARRAY [0..9] OF DWORD;
-
-    (*AllTypes/testDevice2/MyWOBlock *)
-    WO_float32_a583_testDevice2 AT %MW1269: ARRAY [0..9] OF REAL;
-
-    (*AllTypes/testDevice2/MyWOBlock *)
-    WO_string_a583_testDevice2 AT %MW1289: ARRAY [0..9] OF STRING(64);
-
-    (*AllTypes/testDevice2/MyWOBlock *)
-    WO_date_a583_testDevice2 AT %MW1614: ARRAY [0..9] OF DT;
-
-    (*AllTypes/testDevice2/MyWOBlock *)
-    WO_char_a583_testDevice2 AT %MW1654: ARRAY [0..9] OF SINT;
-
-    (*AllTypes/testDevice2/MyWOBlock *)
-    WO_byte_a583_testDevice2 AT %MW1659: ARRAY [0..9] OF BYTE;
-
-    (*AllTypes/testDevice2/MyWOBlock *)
-    WO_word_a583_testDevice2 AT %MW1664: ARRAY [0..9] OF WORD;
-
-    (*AllTypes/testDevice2/MyWOBlock *)
-    WO_dword_a583_testDevice2 AT %MW1674: ARRAY [0..9] OF DWORD;
-
-    (*AllTypes/testDevice2/MyWOBlock *)
-    WO_int_a583_testDevice2 AT %MW1694: ARRAY [0..9] OF INT;
-
-    (*AllTypes/testDevice2/MyWOBlock *)
-    WO_dint_a583_testDevice2 AT %MW1704: ARRAY [0..9] OF DINT;
-
-    (*AllTypes/testDevice2/MyWOBlock *)
-    WO_real_a583_testDevice2 AT %MW1724: ARRAY [0..9] OF REAL;
-
-    (*AllTypes/testDevice2/MyWOBlock *)
-    WO_dt_a583_testDevice2 AT %MW1744: ARRAY [0..9] OF DT;
-
-END_VAR
\ No newline at end of file
diff --git a/silecs-codegen/src/xml/test/generated_temp/controller/Beckhoff_CX9020.exp b/silecs-codegen/src/xml/test/generated_temp/controller/Beckhoff_CX9020.exp
deleted file mode 100644
index c6e6aa278ef4ad048dbdf10419e6232b4c9c3528..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/controller/Beckhoff_CX9020.exp
+++ /dev/null
@@ -1,328 +0,0 @@
-(* +-------------------------------------------------------------------
-* | C.E.R.N Geneva, Switzerland
-* | SILECS - BE/CO-FE
-* | April 2015
-* +-------------------------------------------------------------------
-*
-* Release : SILECS_DEV
-*)
-VAR_GLOBAL
-    (*SilecsHeader/SilecsHeader/hdrBlk *)
-    _version_a781_SilecsHeader AT %MW0: STRING(16):= DEV;
-
-    (*SilecsHeader/SilecsHeader/hdrBlk *)
-    _checksum_a781_SilecsHeader AT %MW20: DWORD:= 427563505;
-
-    (*SilecsHeader/SilecsHeader/hdrBlk *)
-    _user_a781_SilecsHeader AT %MW24: STRING(16):= 'schwinn';
-
-    (*SilecsHeader/SilecsHeader/hdrBlk *)
-    _date_a781_SilecsHeader AT %MW44: DT:= DT#2016-7-29-16:19:24;
-
-    (*AllTypes/testDevice1/MyROBlock *)
-    RO_int8_a583_testDevice1 AT %MW52: SINT;
-
-    (*AllTypes/testDevice1/MyROBlock *)
-    RO_uint8_a583_testDevice1 AT %MW54: BYTE;
-
-    (*AllTypes/testDevice1/MyROBlock *)
-    RO_int16_a583_testDevice1 AT %MW56: INT;
-
-    (*AllTypes/testDevice1/MyROBlock *)
-    RO_uint16_a583_testDevice1 AT %MW58: WORD;
-
-    (*AllTypes/testDevice1/MyROBlock *)
-    RO_int32_a583_testDevice1 AT %MW60: DINT;
-
-    (*AllTypes/testDevice1/MyROBlock *)
-    RO_uint32_a583_testDevice1 AT %MW64: DWORD;
-
-    (*AllTypes/testDevice1/MyROBlock *)
-    RO_float32_a583_testDevice1 AT %MW68: REAL;
-
-    (*AllTypes/testDevice1/MyROBlock *)
-    RO_string_a583_testDevice1 AT %MW72: STRING(64);
-
-    (*AllTypes/testDevice1/MyROBlock *)
-    RO_date_a583_testDevice1 AT %MW140: DT;
-
-    (*AllTypes/testDevice1/MyROBlock *)
-    RO_char_a583_testDevice1 AT %MW148: SINT;
-
-    (*AllTypes/testDevice1/MyROBlock *)
-    RO_byte_a583_testDevice1 AT %MW150: BYTE;
-
-    (*AllTypes/testDevice1/MyROBlock *)
-    RO_word_a583_testDevice1 AT %MW152: WORD;
-
-    (*AllTypes/testDevice1/MyROBlock *)
-    RO_dword_a583_testDevice1 AT %MW156: DWORD;
-
-    (*AllTypes/testDevice1/MyROBlock *)
-    RO_int_a583_testDevice1 AT %MW160: INT;
-
-    (*AllTypes/testDevice1/MyROBlock *)
-    RO_dint_a583_testDevice1 AT %MW164: DINT;
-
-    (*AllTypes/testDevice1/MyROBlock *)
-    RO_real_a583_testDevice1 AT %MW168: REAL;
-
-    (*AllTypes/testDevice1/MyROBlock *)
-    RO_dt_a583_testDevice1 AT %MW172: DT;
-
-    (*AllTypes/testDevice2/MyROBlock *)
-    RO_int8_a583_testDevice2 AT %MW180: SINT;
-
-    (*AllTypes/testDevice2/MyROBlock *)
-    RO_uint8_a583_testDevice2 AT %MW182: BYTE;
-
-    (*AllTypes/testDevice2/MyROBlock *)
-    RO_int16_a583_testDevice2 AT %MW184: INT;
-
-    (*AllTypes/testDevice2/MyROBlock *)
-    RO_uint16_a583_testDevice2 AT %MW186: WORD;
-
-    (*AllTypes/testDevice2/MyROBlock *)
-    RO_int32_a583_testDevice2 AT %MW188: DINT;
-
-    (*AllTypes/testDevice2/MyROBlock *)
-    RO_uint32_a583_testDevice2 AT %MW192: DWORD;
-
-    (*AllTypes/testDevice2/MyROBlock *)
-    RO_float32_a583_testDevice2 AT %MW196: REAL;
-
-    (*AllTypes/testDevice2/MyROBlock *)
-    RO_string_a583_testDevice2 AT %MW200: STRING(64);
-
-    (*AllTypes/testDevice2/MyROBlock *)
-    RO_date_a583_testDevice2 AT %MW268: DT;
-
-    (*AllTypes/testDevice2/MyROBlock *)
-    RO_char_a583_testDevice2 AT %MW276: SINT;
-
-    (*AllTypes/testDevice2/MyROBlock *)
-    RO_byte_a583_testDevice2 AT %MW278: BYTE;
-
-    (*AllTypes/testDevice2/MyROBlock *)
-    RO_word_a583_testDevice2 AT %MW280: WORD;
-
-    (*AllTypes/testDevice2/MyROBlock *)
-    RO_dword_a583_testDevice2 AT %MW284: DWORD;
-
-    (*AllTypes/testDevice2/MyROBlock *)
-    RO_int_a583_testDevice2 AT %MW288: INT;
-
-    (*AllTypes/testDevice2/MyROBlock *)
-    RO_dint_a583_testDevice2 AT %MW292: DINT;
-
-    (*AllTypes/testDevice2/MyROBlock *)
-    RO_real_a583_testDevice2 AT %MW296: REAL;
-
-    (*AllTypes/testDevice2/MyROBlock *)
-    RO_dt_a583_testDevice2 AT %MW300: DT;
-
-    (*AllTypes/testDevice1/MyRWBlock *)
-    RW_int8_a583_testDevice1 AT %MW308: ARRAY [0..1, 0..1] OF SINT;
-
-    (*AllTypes/testDevice1/MyRWBlock *)
-    RW_uint8_a583_testDevice1 AT %MW312: ARRAY [0..1, 0..1] OF BYTE;
-
-    (*AllTypes/testDevice1/MyRWBlock *)
-    RW_int16_a583_testDevice1 AT %MW316: ARRAY [0..1, 0..1] OF INT;
-
-    (*AllTypes/testDevice1/MyRWBlock *)
-    RW_uint16_a583_testDevice1 AT %MW324: ARRAY [0..1, 0..1] OF WORD;
-
-    (*AllTypes/testDevice1/MyRWBlock *)
-    RW_int32_a583_testDevice1 AT %MW332: ARRAY [0..1, 0..1] OF DINT;
-
-    (*AllTypes/testDevice1/MyRWBlock *)
-    RW_uint32_a583_testDevice1 AT %MW348: ARRAY [0..1, 0..1] OF DWORD;
-
-    (*AllTypes/testDevice1/MyRWBlock *)
-    RW_float32_a583_testDevice1 AT %MW364: ARRAY [0..1, 0..1] OF REAL;
-
-    (*AllTypes/testDevice1/MyRWBlock *)
-    RW_string_a583_testDevice1 AT %MW380: ARRAY [0..1, 0..1] OF STRING(64);
-
-    (*AllTypes/testDevice1/MyRWBlock *)
-    RW_date_a583_testDevice1 AT %MW640: ARRAY [0..1, 0..1] OF DT;
-
-    (*AllTypes/testDevice1/MyRWBlock *)
-    RW_char_a583_testDevice1 AT %MW672: ARRAY [0..1, 0..1] OF SINT;
-
-    (*AllTypes/testDevice1/MyRWBlock *)
-    RW_byte_a583_testDevice1 AT %MW676: ARRAY [0..1, 0..1] OF BYTE;
-
-    (*AllTypes/testDevice1/MyRWBlock *)
-    RW_word_a583_testDevice1 AT %MW680: ARRAY [0..1, 0..1] OF WORD;
-
-    (*AllTypes/testDevice1/MyRWBlock *)
-    RW_dword_a583_testDevice1 AT %MW688: ARRAY [0..1, 0..1] OF DWORD;
-
-    (*AllTypes/testDevice1/MyRWBlock *)
-    RW_int_a583_testDevice1 AT %MW704: ARRAY [0..1, 0..1] OF INT;
-
-    (*AllTypes/testDevice1/MyRWBlock *)
-    RW_dint_a583_testDevice1 AT %MW712: ARRAY [0..1, 0..1] OF DINT;
-
-    (*AllTypes/testDevice1/MyRWBlock *)
-    RW_real_a583_testDevice1 AT %MW728: ARRAY [0..1, 0..1] OF REAL;
-
-    (*AllTypes/testDevice1/MyRWBlock *)
-    RW_dt_a583_testDevice1 AT %MW744: ARRAY [0..1, 0..1] OF DT;
-
-    (*AllTypes/testDevice2/MyRWBlock *)
-    RW_int8_a583_testDevice2 AT %MW776: ARRAY [0..1, 0..1] OF SINT;
-
-    (*AllTypes/testDevice2/MyRWBlock *)
-    RW_uint8_a583_testDevice2 AT %MW780: ARRAY [0..1, 0..1] OF BYTE;
-
-    (*AllTypes/testDevice2/MyRWBlock *)
-    RW_int16_a583_testDevice2 AT %MW784: ARRAY [0..1, 0..1] OF INT;
-
-    (*AllTypes/testDevice2/MyRWBlock *)
-    RW_uint16_a583_testDevice2 AT %MW792: ARRAY [0..1, 0..1] OF WORD;
-
-    (*AllTypes/testDevice2/MyRWBlock *)
-    RW_int32_a583_testDevice2 AT %MW800: ARRAY [0..1, 0..1] OF DINT;
-
-    (*AllTypes/testDevice2/MyRWBlock *)
-    RW_uint32_a583_testDevice2 AT %MW816: ARRAY [0..1, 0..1] OF DWORD;
-
-    (*AllTypes/testDevice2/MyRWBlock *)
-    RW_float32_a583_testDevice2 AT %MW832: ARRAY [0..1, 0..1] OF REAL;
-
-    (*AllTypes/testDevice2/MyRWBlock *)
-    RW_string_a583_testDevice2 AT %MW848: ARRAY [0..1, 0..1] OF STRING(64);
-
-    (*AllTypes/testDevice2/MyRWBlock *)
-    RW_date_a583_testDevice2 AT %MW1108: ARRAY [0..1, 0..1] OF DT;
-
-    (*AllTypes/testDevice2/MyRWBlock *)
-    RW_char_a583_testDevice2 AT %MW1140: ARRAY [0..1, 0..1] OF SINT;
-
-    (*AllTypes/testDevice2/MyRWBlock *)
-    RW_byte_a583_testDevice2 AT %MW1144: ARRAY [0..1, 0..1] OF BYTE;
-
-    (*AllTypes/testDevice2/MyRWBlock *)
-    RW_word_a583_testDevice2 AT %MW1148: ARRAY [0..1, 0..1] OF WORD;
-
-    (*AllTypes/testDevice2/MyRWBlock *)
-    RW_dword_a583_testDevice2 AT %MW1156: ARRAY [0..1, 0..1] OF DWORD;
-
-    (*AllTypes/testDevice2/MyRWBlock *)
-    RW_int_a583_testDevice2 AT %MW1172: ARRAY [0..1, 0..1] OF INT;
-
-    (*AllTypes/testDevice2/MyRWBlock *)
-    RW_dint_a583_testDevice2 AT %MW1180: ARRAY [0..1, 0..1] OF DINT;
-
-    (*AllTypes/testDevice2/MyRWBlock *)
-    RW_real_a583_testDevice2 AT %MW1196: ARRAY [0..1, 0..1] OF REAL;
-
-    (*AllTypes/testDevice2/MyRWBlock *)
-    RW_dt_a583_testDevice2 AT %MW1212: ARRAY [0..1, 0..1] OF DT;
-
-    (*AllTypes/testDevice1/MyWOBlock *)
-    WO_int8_a583_testDevice1 AT %MW1244: ARRAY [0..9] OF SINT;
-
-    (*AllTypes/testDevice1/MyWOBlock *)
-    WO_uint8_a583_testDevice1 AT %MW1254: ARRAY [0..9] OF BYTE;
-
-    (*AllTypes/testDevice1/MyWOBlock *)
-    WO_int16_a583_testDevice1 AT %MW1264: ARRAY [0..9] OF INT;
-
-    (*AllTypes/testDevice1/MyWOBlock *)
-    WO_uint16_a583_testDevice1 AT %MW1284: ARRAY [0..9] OF WORD;
-
-    (*AllTypes/testDevice1/MyWOBlock *)
-    WO_int32_a583_testDevice1 AT %MW1304: ARRAY [0..9] OF DINT;
-
-    (*AllTypes/testDevice1/MyWOBlock *)
-    WO_uint32_a583_testDevice1 AT %MW1344: ARRAY [0..9] OF DWORD;
-
-    (*AllTypes/testDevice1/MyWOBlock *)
-    WO_float32_a583_testDevice1 AT %MW1384: ARRAY [0..9] OF REAL;
-
-    (*AllTypes/testDevice1/MyWOBlock *)
-    WO_string_a583_testDevice1 AT %MW1424: ARRAY [0..9] OF STRING(64);
-
-    (*AllTypes/testDevice1/MyWOBlock *)
-    WO_date_a583_testDevice1 AT %MW2076: ARRAY [0..9] OF DT;
-
-    (*AllTypes/testDevice1/MyWOBlock *)
-    WO_char_a583_testDevice1 AT %MW2156: ARRAY [0..9] OF SINT;
-
-    (*AllTypes/testDevice1/MyWOBlock *)
-    WO_byte_a583_testDevice1 AT %MW2166: ARRAY [0..9] OF BYTE;
-
-    (*AllTypes/testDevice1/MyWOBlock *)
-    WO_word_a583_testDevice1 AT %MW2176: ARRAY [0..9] OF WORD;
-
-    (*AllTypes/testDevice1/MyWOBlock *)
-    WO_dword_a583_testDevice1 AT %MW2196: ARRAY [0..9] OF DWORD;
-
-    (*AllTypes/testDevice1/MyWOBlock *)
-    WO_int_a583_testDevice1 AT %MW2236: ARRAY [0..9] OF INT;
-
-    (*AllTypes/testDevice1/MyWOBlock *)
-    WO_dint_a583_testDevice1 AT %MW2256: ARRAY [0..9] OF DINT;
-
-    (*AllTypes/testDevice1/MyWOBlock *)
-    WO_real_a583_testDevice1 AT %MW2296: ARRAY [0..9] OF REAL;
-
-    (*AllTypes/testDevice1/MyWOBlock *)
-    WO_dt_a583_testDevice1 AT %MW2336: ARRAY [0..9] OF DT;
-
-    (*AllTypes/testDevice2/MyWOBlock *)
-    WO_int8_a583_testDevice2 AT %MW2416: ARRAY [0..9] OF SINT;
-
-    (*AllTypes/testDevice2/MyWOBlock *)
-    WO_uint8_a583_testDevice2 AT %MW2426: ARRAY [0..9] OF BYTE;
-
-    (*AllTypes/testDevice2/MyWOBlock *)
-    WO_int16_a583_testDevice2 AT %MW2436: ARRAY [0..9] OF INT;
-
-    (*AllTypes/testDevice2/MyWOBlock *)
-    WO_uint16_a583_testDevice2 AT %MW2456: ARRAY [0..9] OF WORD;
-
-    (*AllTypes/testDevice2/MyWOBlock *)
-    WO_int32_a583_testDevice2 AT %MW2476: ARRAY [0..9] OF DINT;
-
-    (*AllTypes/testDevice2/MyWOBlock *)
-    WO_uint32_a583_testDevice2 AT %MW2516: ARRAY [0..9] OF DWORD;
-
-    (*AllTypes/testDevice2/MyWOBlock *)
-    WO_float32_a583_testDevice2 AT %MW2556: ARRAY [0..9] OF REAL;
-
-    (*AllTypes/testDevice2/MyWOBlock *)
-    WO_string_a583_testDevice2 AT %MW2596: ARRAY [0..9] OF STRING(64);
-
-    (*AllTypes/testDevice2/MyWOBlock *)
-    WO_date_a583_testDevice2 AT %MW3248: ARRAY [0..9] OF DT;
-
-    (*AllTypes/testDevice2/MyWOBlock *)
-    WO_char_a583_testDevice2 AT %MW3328: ARRAY [0..9] OF SINT;
-
-    (*AllTypes/testDevice2/MyWOBlock *)
-    WO_byte_a583_testDevice2 AT %MW3338: ARRAY [0..9] OF BYTE;
-
-    (*AllTypes/testDevice2/MyWOBlock *)
-    WO_word_a583_testDevice2 AT %MW3348: ARRAY [0..9] OF WORD;
-
-    (*AllTypes/testDevice2/MyWOBlock *)
-    WO_dword_a583_testDevice2 AT %MW3368: ARRAY [0..9] OF DWORD;
-
-    (*AllTypes/testDevice2/MyWOBlock *)
-    WO_int_a583_testDevice2 AT %MW3408: ARRAY [0..9] OF INT;
-
-    (*AllTypes/testDevice2/MyWOBlock *)
-    WO_dint_a583_testDevice2 AT %MW3428: ARRAY [0..9] OF DINT;
-
-    (*AllTypes/testDevice2/MyWOBlock *)
-    WO_real_a583_testDevice2 AT %MW3468: ARRAY [0..9] OF REAL;
-
-    (*AllTypes/testDevice2/MyWOBlock *)
-    WO_dt_a583_testDevice2 AT %MW3508: ARRAY [0..9] OF DT;
-
-END_VAR
\ No newline at end of file
diff --git a/silecs-codegen/src/xml/test/generated_temp/controller/Rabbit_BlockMode.h b/silecs-codegen/src/xml/test/generated_temp/controller/Rabbit_BlockMode.h
deleted file mode 100644
index 6a8cef9ea7cf74463d5a67a3623a08778417fd42..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/controller/Rabbit_BlockMode.h
+++ /dev/null
@@ -1,202 +0,0 @@
-
-/* +-------------------------------------------------------------------
- * | Copyright CERN 2015
- * | SILECS - BE/CO-SRC
- * | April 2015
- * +-------------------------------------------------------------------
- *
- * Release : SILECS_DEV
- *
- * The following code has been automatically generated by SILECS.
- *
- * N.B: This file relies on the existence of explicit C data type such
- * as int8_t, uint8_t, int16_t, etc....
- * If your compiler does not support them natively please implement 
- * them by including the data type definition provided on the SILECS
- * web page before including this header file.
- */
-
-#define MODBUS_START_ADDRESS 0
-
-/*---------------------------------------------------------------------
- * DT 
- * data type definition and related utilities
- *---------------------------------------------------------------------
- */
-
-typedef struct
-{
-	uint8_t sc_100;     // second cent
-	uint8_t sc;			// second
-	uint8_t mn;         // minute
-	uint8_t hh;         // hour
-	uint8_t dd;         // day
-	uint8_t mm;         // month
-	uint8_t yy1;        // year
-	uint8_t yy2;        // year2
-} dt;
-
-#define _frombcd(a) (int)(((a>>4)*10)+(a&0x0F))
-#define _tobcd(a)   (((unsigned char)((a)/10)<<4)+((a)%10))
-
-void SILECS_set_dt(int8_t sc_100 ,int8_t sc, int8_t mn,int8_t hh,int8_t dd,int8_t mm,int32_t yy, dt *date)
-{
-	date->sc_100 = sc_100;
-	date->sc     = _tobcd(sc);
-	date->mn     = _tobcd(mn);
-	date->hh     = _tobcd(hh);
-	date->dd     = _tobcd(dd);
-	date->mm     = _tobcd(mm);
-	date->yy2    = _tobcd((int8_t)(yy/100));
-	date->yy1    = _tobcd((int8_t)(yy%100));
-}
-
-
-/*---------------------------------------------------------------------
- * SilecsHeader / v1.0.0
- * BLOCK Type definition
- *---------------------------------------------------------------------
- */
-
-typedef struct 
-{
-    uint8_t _version[16];
-    uint32_t _checksum;
-    uint8_t _user[16];
-    dt _date;
-
-} _SilecsHeader_hdrBlk;
-
-/*---------------------------------------------------------------------
- * AllTypes / v0.1.0
- * BLOCK Type definition
- *---------------------------------------------------------------------
- */
-
-typedef struct 
-{
-    int16_t RO_int8;
-    uint16_t RO_uint8;
-    int16_t RO_int16;
-    uint16_t RO_uint16;
-    int32_t RO_int32;
-    uint32_t RO_uint32;
-    float RO_float32;
-    uint8_t RO_string[64];
-    dt RO_date;
-    int16_t RO_char;
-    uint16_t RO_byte;
-    uint16_t RO_word;
-    uint32_t RO_dword;
-    int16_t RO_int;
-    int32_t RO_dint;
-    float RO_real;
-    dt RO_dt;
-
-} _AllTypes_MyROBlock;
-
-typedef struct 
-{
-    int16_t RW_int8[2][2];
-    uint16_t RW_uint8[2][2];
-    int16_t RW_int16[2][2];
-    uint16_t RW_uint16[2][2];
-    int32_t RW_int32[2][2];
-    uint32_t RW_uint32[2][2];
-    float RW_float32[2][2];
-    uint8_t RW_string[2][2][64];
-    dt RW_date[2][2];
-    int16_t RW_char[2][2];
-    uint16_t RW_byte[2][2];
-    uint16_t RW_word[2][2];
-    uint32_t RW_dword[2][2];
-    int16_t RW_int[2][2];
-    int32_t RW_dint[2][2];
-    float RW_real[2][2];
-    dt RW_dt[2][2];
-
-} _AllTypes_MyRWBlock;
-
-typedef struct 
-{
-    int16_t WO_int8[10];
-    uint16_t WO_uint8[10];
-    int16_t WO_int16[10];
-    uint16_t WO_uint16[10];
-    int32_t WO_int32[10];
-    uint32_t WO_uint32[10];
-    float WO_float32[10];
-    uint8_t WO_string[10][64];
-    dt WO_date[10];
-    int16_t WO_char[10];
-    uint16_t WO_byte[10];
-    uint16_t WO_word[10];
-    uint32_t WO_dword[10];
-    int16_t WO_int[10];
-    int32_t WO_dint[10];
-    float WO_real[10];
-    dt WO_dt[10];
-
-} _AllTypes_MyWOBlock;
-
-/*---------------------------------------------------------------------
- * MEMORY ALLOCATION
- * PROTOCOL: BLOCK_MODE
- *---------------------------------------------------------------------
- */
-
-typedef struct {
-    
-    struct {
-        _SilecsHeader_hdrBlk SilecsHeader;
-    } SilecsHeader_hdrBlk;
-
-    struct {
-        _AllTypes_MyROBlock testDevice1;
-        _AllTypes_MyROBlock testDevice2;
-    } AllTypes_MyROBlock;
-
-    struct {
-        _AllTypes_MyRWBlock testDevice1;
-        _AllTypes_MyRWBlock testDevice2;
-    } AllTypes_MyRWBlock;
-
-    struct {
-        _AllTypes_MyWOBlock testDevice1;
-        _AllTypes_MyWOBlock testDevice2;
-    } AllTypes_MyWOBlock;
-
-} _SILECS_DATA_SEGMENT;
-
-#define SILECS_DATA_SEGMENT_MODBUS_SIZE (sizeof(_SILECS_DATA_SEGMENT)/2)
-
-union modbus_data {
-    _SILECS_DATA_SEGMENT data;
-    uint16_t array[SILECS_DATA_SEGMENT_MODBUS_SIZE];
-} silecsData;
-
-
-/* Initialization function */
-int SILECS_init()
-{
-	/* Silecs version initialization */
-	strcpy((unsigned char *)silecsData.data.SilecsHeader_hdrBlk.device[0]._version, "SILECS_DEV");
-	
-	/* Silecs checksum initialization */
-	silecsData.data.SilecsHeader_hdrBlk.device[0]._checksum  = 3940683809;
-	
-	/* Silecs user initialization */
-	strcpy((unsigned char *)silecsData.data.SilecsHeader_hdrBlk.device[0]._user, "schwinn");
-	
-	/* Silecs date initialization */
-	SILECS_set_dt(4,24,19,16,29,7,2016,&silecsData.data.SilecsHeader_hdrBlk.device[0]._date);
-}
-
-/*
- * Automatically generated Addressing example
- *
- * This example shows how to address the register WO_dt of block MyWOBlock
- * of device testDevice2 of the class AllTypes
- *
- *  silecsData.AllTypes_MyWOBlock.testDevice2.WO_dt = ....;
- */
\ No newline at end of file
diff --git a/silecs-codegen/src/xml/test/generated_temp/controller/Rabbit_DeviceMode.h b/silecs-codegen/src/xml/test/generated_temp/controller/Rabbit_DeviceMode.h
deleted file mode 100644
index bb386fda4271c986e44c4dd1e5f793772bc7cca0..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/controller/Rabbit_DeviceMode.h
+++ /dev/null
@@ -1,195 +0,0 @@
-
-/* +-------------------------------------------------------------------
- * | Copyright CERN 2015
- * | SILECS - BE/CO-SRC
- * | April 2015
- * +-------------------------------------------------------------------
- *
- * Release : SILECS_DEV
- *
- * The following code has been automatically generated by SILECS.
- *
- * N.B: This file relies on the existence of explicit C data type such
- * as int8_t, uint8_t, int16_t, etc....
- * If your compiler does not support them natively please implement 
- * them by including the data type definition provided on the SILECS
- * web page before including this header file.
- */
-
-#define MODBUS_START_ADDRESS 0
-
-/*---------------------------------------------------------------------
- * DT 
- * data type definition and related utilities
- *---------------------------------------------------------------------
- */
-
-typedef struct
-{
-	uint8_t sc_100;     // second cent
-	uint8_t sc;			// second
-	uint8_t mn;         // minute
-	uint8_t hh;         // hour
-	uint8_t dd;         // day
-	uint8_t mm;         // month
-	uint8_t yy1;        // year
-	uint8_t yy2;        // year2
-} dt;
-
-#define _frombcd(a) (int)(((a>>4)*10)+(a&0x0F))
-#define _tobcd(a)   (((unsigned char)((a)/10)<<4)+((a)%10))
-
-void SILECS_set_dt(int8_t sc_100 ,int8_t sc, int8_t mn,int8_t hh,int8_t dd,int8_t mm,int32_t yy, dt *date)
-{
-	date->sc_100 = sc_100;
-	date->sc     = _tobcd(sc);
-	date->mn     = _tobcd(mn);
-	date->hh     = _tobcd(hh);
-	date->dd     = _tobcd(dd);
-	date->mm     = _tobcd(mm);
-	date->yy2    = _tobcd((int8_t)(yy/100));
-	date->yy1    = _tobcd((int8_t)(yy%100));
-}
-
-
-/*---------------------------------------------------------------------
- * SilecsHeader / v1.0.0
- * BLOCK Type definition
- *---------------------------------------------------------------------
- */
-
-typedef struct 
-{
-    uint8_t _version[16];
-    uint32_t _checksum;
-    uint8_t _user[16];
-    dt _date;
-
-} _SilecsHeader_hdrBlk;
-
-/*---------------------------------------------------------------------
- * AllTypes / v0.1.0
- * BLOCK Type definition
- *---------------------------------------------------------------------
- */
-
-typedef struct 
-{
-    int16_t RO_int8;
-    uint16_t RO_uint8;
-    int16_t RO_int16;
-    uint16_t RO_uint16;
-    int32_t RO_int32;
-    uint32_t RO_uint32;
-    float RO_float32;
-    uint8_t RO_string[64];
-    dt RO_date;
-    int16_t RO_char;
-    uint16_t RO_byte;
-    uint16_t RO_word;
-    uint32_t RO_dword;
-    int16_t RO_int;
-    int32_t RO_dint;
-    float RO_real;
-    dt RO_dt;
-
-} _AllTypes_MyROBlock;
-
-typedef struct 
-{
-    int16_t RW_int8[2][2];
-    uint16_t RW_uint8[2][2];
-    int16_t RW_int16[2][2];
-    uint16_t RW_uint16[2][2];
-    int32_t RW_int32[2][2];
-    uint32_t RW_uint32[2][2];
-    float RW_float32[2][2];
-    uint8_t RW_string[2][2][64];
-    dt RW_date[2][2];
-    int16_t RW_char[2][2];
-    uint16_t RW_byte[2][2];
-    uint16_t RW_word[2][2];
-    uint32_t RW_dword[2][2];
-    int16_t RW_int[2][2];
-    int32_t RW_dint[2][2];
-    float RW_real[2][2];
-    dt RW_dt[2][2];
-
-} _AllTypes_MyRWBlock;
-
-typedef struct 
-{
-    int16_t WO_int8[10];
-    uint16_t WO_uint8[10];
-    int16_t WO_int16[10];
-    uint16_t WO_uint16[10];
-    int32_t WO_int32[10];
-    uint32_t WO_uint32[10];
-    float WO_float32[10];
-    uint8_t WO_string[10][64];
-    dt WO_date[10];
-    int16_t WO_char[10];
-    uint16_t WO_byte[10];
-    uint16_t WO_word[10];
-    uint32_t WO_dword[10];
-    int16_t WO_int[10];
-    int32_t WO_dint[10];
-    float WO_real[10];
-    dt WO_dt[10];
-
-} _AllTypes_MyWOBlock;
-
-/*---------------------------------------------------------------------
- * MEMORY ALLOCATION
- * PROTOCOL: DEVICE_MODE
- *---------------------------------------------------------------------
- */
-
-typedef struct {
-    
-    struct {
-        _SilecsHeader_hdrBlk hdrBlk;
-
-    } SilecsHeader_SilecsHeader;
-
-    struct {
-        _AllTypes_MyROBlock MyROBlock;
-        _AllTypes_MyRWBlock MyRWBlock;
-        _AllTypes_MyWOBlock MyWOBlock;
-
-    } AllTypes_testDevice1, AllTypes_testDevice2;
-
-} _SILECS_DATA_SEGMENT;
-
-#define SILECS_DATA_SEGMENT_MODBUS_SIZE (sizeof(_SILECS_DATA_SEGMENT)/2)
-
-union silecsData {
-    _SILECS_DATA_SEGMENT data;
-    uint16_t array[SILECS_DATA_SEGMENT_MODBUS_SIZE];
-} silecsData;
-
-
-/* Initialization function */
-int SILECS_init()
-{
-	/* Silecs version initialization */
-	strcpy((unsigned char *)silecsData.data.SilecsHeader_device[0].hdrBlk._version, "SILECS_DEV");
-	
-	/* Silecs checksum initialization */
-	silecsData.data.SilecsHeader_device[0].hdrBlk._checksum  = 3940683809;
-	
-	/* Silecs user initialization */
-	strcpy((unsigned char *)silecsData.data.SilecsHeader_device[0].hdrBlk._user, "schwinn");
-	
-	/* Silecs date initialization */
-	SILECS_set_dt(4,24,19,16,29,7,2016,&silecsData.data.SilecsHeader_device[0].hdrBlk._date);
-}
-
-/*
- * Automatically generated Addressing example
- *
- * This example shows how to address the register WO_dt of block MyWOBlock
- * of device AllTypes_testDevice2 of the class AllTypes
- * 
- *  silecsData.AllTypes_AllTypes_testDevice2.MyWOBlock.WO_dt = ....;
- */
\ No newline at end of file
diff --git a/silecs-codegen/src/xml/test/generated_temp/controller/Schneider_M340.xsy b/silecs-codegen/src/xml/test/generated_temp/controller/Schneider_M340.xsy
deleted file mode 100644
index 422613a9147f4bde336b0cef8c46cbd8fa7dbc0c..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/controller/Schneider_M340.xsy
+++ /dev/null
@@ -1,326 +0,0 @@
-<VariablesExchangeFile>
-  <dataBlock>
-    <variables name="_version_a781_SilecsHeader" typeName="STRING[16]" topologicalAddress="%MW0">
-      <variableInit value="DEV"/>
-      <comment>SilecsHeader/SilecsHeader/hdrBlk</comment>
-    </variables>
-    <variables name="_checksum_a781_SilecsHeader" typeName="DWORD" topologicalAddress="%MW8">
-      <variableInit value="3940683809"/>
-      <comment>SilecsHeader/SilecsHeader/hdrBlk</comment>
-    </variables>
-    <variables name="_user_a781_SilecsHeader" typeName="STRING[16]" topologicalAddress="%MW10">
-      <variableInit value="schwinn"/>
-      <comment>SilecsHeader/SilecsHeader/hdrBlk</comment>
-    </variables>
-    <variables name="_date_a781_SilecsHeader" typeName="DT" topologicalAddress="%MW18">
-      <variableInit value="DT#2016-7-29-16:19:24"/>
-      <comment>SilecsHeader/SilecsHeader/hdrBlk</comment>
-    </variables>
-    <variables name="RO_int8_a583_testDevice1" typeName="WORD" topologicalAddress="%MW22">
-      <comment>AllTypes/testDevice1/MyROBlock</comment>
-    </variables>
-    <variables name="RO_uint8_a583_testDevice1" typeName="BYTE" topologicalAddress="%MW23">
-      <comment>AllTypes/testDevice1/MyROBlock</comment>
-    </variables>
-    <variables name="RO_int16_a583_testDevice1" typeName="INT" topologicalAddress="%MW24">
-      <comment>AllTypes/testDevice1/MyROBlock</comment>
-    </variables>
-    <variables name="RO_uint16_a583_testDevice1" typeName="WORD" topologicalAddress="%MW25">
-      <comment>AllTypes/testDevice1/MyROBlock</comment>
-    </variables>
-    <variables name="RO_int32_a583_testDevice1" typeName="DINT" topologicalAddress="%MW26">
-      <comment>AllTypes/testDevice1/MyROBlock</comment>
-    </variables>
-    <variables name="RO_uint32_a583_testDevice1" typeName="DWORD" topologicalAddress="%MW28">
-      <comment>AllTypes/testDevice1/MyROBlock</comment>
-    </variables>
-    <variables name="RO_float32_a583_testDevice1" typeName="REAL" topologicalAddress="%MW30">
-      <comment>AllTypes/testDevice1/MyROBlock</comment>
-    </variables>
-    <variables name="RO_string_a583_testDevice1" typeName="STRING[64]" topologicalAddress="%MW32">
-      <comment>AllTypes/testDevice1/MyROBlock</comment>
-    </variables>
-    <variables name="RO_date_a583_testDevice1" typeName="DT" topologicalAddress="%MW64">
-      <comment>AllTypes/testDevice1/MyROBlock</comment>
-    </variables>
-    <variables name="RO_char_a583_testDevice1" typeName="WORD" topologicalAddress="%MW68">
-      <comment>AllTypes/testDevice1/MyROBlock</comment>
-    </variables>
-    <variables name="RO_byte_a583_testDevice1" typeName="BYTE" topologicalAddress="%MW69">
-      <comment>AllTypes/testDevice1/MyROBlock</comment>
-    </variables>
-    <variables name="RO_word_a583_testDevice1" typeName="WORD" topologicalAddress="%MW70">
-      <comment>AllTypes/testDevice1/MyROBlock</comment>
-    </variables>
-    <variables name="RO_dword_a583_testDevice1" typeName="DWORD" topologicalAddress="%MW72">
-      <comment>AllTypes/testDevice1/MyROBlock</comment>
-    </variables>
-    <variables name="RO_int_a583_testDevice1" typeName="INT" topologicalAddress="%MW74">
-      <comment>AllTypes/testDevice1/MyROBlock</comment>
-    </variables>
-    <variables name="RO_dint_a583_testDevice1" typeName="DINT" topologicalAddress="%MW76">
-      <comment>AllTypes/testDevice1/MyROBlock</comment>
-    </variables>
-    <variables name="RO_real_a583_testDevice1" typeName="REAL" topologicalAddress="%MW78">
-      <comment>AllTypes/testDevice1/MyROBlock</comment>
-    </variables>
-    <variables name="RO_dt_a583_testDevice1" typeName="DT" topologicalAddress="%MW80">
-      <comment>AllTypes/testDevice1/MyROBlock</comment>
-    </variables>
-    <variables name="RO_int8_a583_testDevice2" typeName="WORD" topologicalAddress="%MW84">
-      <comment>AllTypes/testDevice2/MyROBlock</comment>
-    </variables>
-    <variables name="RO_uint8_a583_testDevice2" typeName="BYTE" topologicalAddress="%MW85">
-      <comment>AllTypes/testDevice2/MyROBlock</comment>
-    </variables>
-    <variables name="RO_int16_a583_testDevice2" typeName="INT" topologicalAddress="%MW86">
-      <comment>AllTypes/testDevice2/MyROBlock</comment>
-    </variables>
-    <variables name="RO_uint16_a583_testDevice2" typeName="WORD" topologicalAddress="%MW87">
-      <comment>AllTypes/testDevice2/MyROBlock</comment>
-    </variables>
-    <variables name="RO_int32_a583_testDevice2" typeName="DINT" topologicalAddress="%MW88">
-      <comment>AllTypes/testDevice2/MyROBlock</comment>
-    </variables>
-    <variables name="RO_uint32_a583_testDevice2" typeName="DWORD" topologicalAddress="%MW90">
-      <comment>AllTypes/testDevice2/MyROBlock</comment>
-    </variables>
-    <variables name="RO_float32_a583_testDevice2" typeName="REAL" topologicalAddress="%MW92">
-      <comment>AllTypes/testDevice2/MyROBlock</comment>
-    </variables>
-    <variables name="RO_string_a583_testDevice2" typeName="STRING[64]" topologicalAddress="%MW94">
-      <comment>AllTypes/testDevice2/MyROBlock</comment>
-    </variables>
-    <variables name="RO_date_a583_testDevice2" typeName="DT" topologicalAddress="%MW126">
-      <comment>AllTypes/testDevice2/MyROBlock</comment>
-    </variables>
-    <variables name="RO_char_a583_testDevice2" typeName="WORD" topologicalAddress="%MW130">
-      <comment>AllTypes/testDevice2/MyROBlock</comment>
-    </variables>
-    <variables name="RO_byte_a583_testDevice2" typeName="BYTE" topologicalAddress="%MW131">
-      <comment>AllTypes/testDevice2/MyROBlock</comment>
-    </variables>
-    <variables name="RO_word_a583_testDevice2" typeName="WORD" topologicalAddress="%MW132">
-      <comment>AllTypes/testDevice2/MyROBlock</comment>
-    </variables>
-    <variables name="RO_dword_a583_testDevice2" typeName="DWORD" topologicalAddress="%MW134">
-      <comment>AllTypes/testDevice2/MyROBlock</comment>
-    </variables>
-    <variables name="RO_int_a583_testDevice2" typeName="INT" topologicalAddress="%MW136">
-      <comment>AllTypes/testDevice2/MyROBlock</comment>
-    </variables>
-    <variables name="RO_dint_a583_testDevice2" typeName="DINT" topologicalAddress="%MW138">
-      <comment>AllTypes/testDevice2/MyROBlock</comment>
-    </variables>
-    <variables name="RO_real_a583_testDevice2" typeName="REAL" topologicalAddress="%MW140">
-      <comment>AllTypes/testDevice2/MyROBlock</comment>
-    </variables>
-    <variables name="RO_dt_a583_testDevice2" typeName="DT" topologicalAddress="%MW142">
-      <comment>AllTypes/testDevice2/MyROBlock</comment>
-    </variables>
-    <variables name="RW_int8_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF WORD" topologicalAddress="%MW146">
-      <comment>AllTypes/testDevice1/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_uint8_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF BYTE" topologicalAddress="%MW150">
-      <comment>AllTypes/testDevice1/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_int16_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF INT" topologicalAddress="%MW152">
-      <comment>AllTypes/testDevice1/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_uint16_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF WORD" topologicalAddress="%MW156">
-      <comment>AllTypes/testDevice1/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_int32_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF DINT" topologicalAddress="%MW160">
-      <comment>AllTypes/testDevice1/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_uint32_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF DWORD" topologicalAddress="%MW168">
-      <comment>AllTypes/testDevice1/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_float32_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF REAL" topologicalAddress="%MW176">
-      <comment>AllTypes/testDevice1/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_string_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF STRING[64]" topologicalAddress="%MW184">
-      <comment>AllTypes/testDevice1/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_date_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF DT" topologicalAddress="%MW312">
-      <comment>AllTypes/testDevice1/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_char_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF WORD" topologicalAddress="%MW328">
-      <comment>AllTypes/testDevice1/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_byte_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF BYTE" topologicalAddress="%MW332">
-      <comment>AllTypes/testDevice1/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_word_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF WORD" topologicalAddress="%MW334">
-      <comment>AllTypes/testDevice1/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_dword_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF DWORD" topologicalAddress="%MW338">
-      <comment>AllTypes/testDevice1/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_int_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF INT" topologicalAddress="%MW346">
-      <comment>AllTypes/testDevice1/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_dint_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF DINT" topologicalAddress="%MW350">
-      <comment>AllTypes/testDevice1/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_real_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF REAL" topologicalAddress="%MW358">
-      <comment>AllTypes/testDevice1/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_dt_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF DT" topologicalAddress="%MW366">
-      <comment>AllTypes/testDevice1/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_int8_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF WORD" topologicalAddress="%MW382">
-      <comment>AllTypes/testDevice2/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_uint8_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF BYTE" topologicalAddress="%MW386">
-      <comment>AllTypes/testDevice2/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_int16_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF INT" topologicalAddress="%MW388">
-      <comment>AllTypes/testDevice2/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_uint16_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF WORD" topologicalAddress="%MW392">
-      <comment>AllTypes/testDevice2/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_int32_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF DINT" topologicalAddress="%MW396">
-      <comment>AllTypes/testDevice2/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_uint32_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF DWORD" topologicalAddress="%MW404">
-      <comment>AllTypes/testDevice2/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_float32_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF REAL" topologicalAddress="%MW412">
-      <comment>AllTypes/testDevice2/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_string_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF STRING[64]" topologicalAddress="%MW420">
-      <comment>AllTypes/testDevice2/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_date_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF DT" topologicalAddress="%MW548">
-      <comment>AllTypes/testDevice2/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_char_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF WORD" topologicalAddress="%MW564">
-      <comment>AllTypes/testDevice2/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_byte_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF BYTE" topologicalAddress="%MW568">
-      <comment>AllTypes/testDevice2/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_word_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF WORD" topologicalAddress="%MW570">
-      <comment>AllTypes/testDevice2/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_dword_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF DWORD" topologicalAddress="%MW574">
-      <comment>AllTypes/testDevice2/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_int_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF INT" topologicalAddress="%MW582">
-      <comment>AllTypes/testDevice2/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_dint_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF DINT" topologicalAddress="%MW586">
-      <comment>AllTypes/testDevice2/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_real_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF REAL" topologicalAddress="%MW594">
-      <comment>AllTypes/testDevice2/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_dt_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF DT" topologicalAddress="%MW602">
-      <comment>AllTypes/testDevice2/MyRWBlock</comment>
-    </variables>
-    <variables name="WO_int8_a583_testDevice1" typeName="ARRAY[0..9] OF WORD" topologicalAddress="%MW618">
-      <comment>AllTypes/testDevice1/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_uint8_a583_testDevice1" typeName="ARRAY[0..9] OF BYTE" topologicalAddress="%MW628">
-      <comment>AllTypes/testDevice1/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_int16_a583_testDevice1" typeName="ARRAY[0..9] OF INT" topologicalAddress="%MW633">
-      <comment>AllTypes/testDevice1/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_uint16_a583_testDevice1" typeName="ARRAY[0..9] OF WORD" topologicalAddress="%MW643">
-      <comment>AllTypes/testDevice1/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_int32_a583_testDevice1" typeName="ARRAY[0..9] OF DINT" topologicalAddress="%MW654">
-      <comment>AllTypes/testDevice1/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_uint32_a583_testDevice1" typeName="ARRAY[0..9] OF DWORD" topologicalAddress="%MW674">
-      <comment>AllTypes/testDevice1/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_float32_a583_testDevice1" typeName="ARRAY[0..9] OF REAL" topologicalAddress="%MW694">
-      <comment>AllTypes/testDevice1/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_string_a583_testDevice1" typeName="ARRAY[0..9] OF STRING[64]" topologicalAddress="%MW714">
-      <comment>AllTypes/testDevice1/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_date_a583_testDevice1" typeName="ARRAY[0..9] OF DT" topologicalAddress="%MW1034">
-      <comment>AllTypes/testDevice1/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_char_a583_testDevice1" typeName="ARRAY[0..9] OF WORD" topologicalAddress="%MW1074">
-      <comment>AllTypes/testDevice1/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_byte_a583_testDevice1" typeName="ARRAY[0..9] OF BYTE" topologicalAddress="%MW1084">
-      <comment>AllTypes/testDevice1/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_word_a583_testDevice1" typeName="ARRAY[0..9] OF WORD" topologicalAddress="%MW1089">
-      <comment>AllTypes/testDevice1/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_dword_a583_testDevice1" typeName="ARRAY[0..9] OF DWORD" topologicalAddress="%MW1100">
-      <comment>AllTypes/testDevice1/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_int_a583_testDevice1" typeName="ARRAY[0..9] OF INT" topologicalAddress="%MW1120">
-      <comment>AllTypes/testDevice1/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_dint_a583_testDevice1" typeName="ARRAY[0..9] OF DINT" topologicalAddress="%MW1130">
-      <comment>AllTypes/testDevice1/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_real_a583_testDevice1" typeName="ARRAY[0..9] OF REAL" topologicalAddress="%MW1150">
-      <comment>AllTypes/testDevice1/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_dt_a583_testDevice1" typeName="ARRAY[0..9] OF DT" topologicalAddress="%MW1170">
-      <comment>AllTypes/testDevice1/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_int8_a583_testDevice2" typeName="ARRAY[0..9] OF WORD" topologicalAddress="%MW1210">
-      <comment>AllTypes/testDevice2/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_uint8_a583_testDevice2" typeName="ARRAY[0..9] OF BYTE" topologicalAddress="%MW1220">
-      <comment>AllTypes/testDevice2/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_int16_a583_testDevice2" typeName="ARRAY[0..9] OF INT" topologicalAddress="%MW1225">
-      <comment>AllTypes/testDevice2/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_uint16_a583_testDevice2" typeName="ARRAY[0..9] OF WORD" topologicalAddress="%MW1235">
-      <comment>AllTypes/testDevice2/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_int32_a583_testDevice2" typeName="ARRAY[0..9] OF DINT" topologicalAddress="%MW1246">
-      <comment>AllTypes/testDevice2/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_uint32_a583_testDevice2" typeName="ARRAY[0..9] OF DWORD" topologicalAddress="%MW1266">
-      <comment>AllTypes/testDevice2/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_float32_a583_testDevice2" typeName="ARRAY[0..9] OF REAL" topologicalAddress="%MW1286">
-      <comment>AllTypes/testDevice2/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_string_a583_testDevice2" typeName="ARRAY[0..9] OF STRING[64]" topologicalAddress="%MW1306">
-      <comment>AllTypes/testDevice2/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_date_a583_testDevice2" typeName="ARRAY[0..9] OF DT" topologicalAddress="%MW1626">
-      <comment>AllTypes/testDevice2/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_char_a583_testDevice2" typeName="ARRAY[0..9] OF WORD" topologicalAddress="%MW1666">
-      <comment>AllTypes/testDevice2/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_byte_a583_testDevice2" typeName="ARRAY[0..9] OF BYTE" topologicalAddress="%MW1676">
-      <comment>AllTypes/testDevice2/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_word_a583_testDevice2" typeName="ARRAY[0..9] OF WORD" topologicalAddress="%MW1681">
-      <comment>AllTypes/testDevice2/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_dword_a583_testDevice2" typeName="ARRAY[0..9] OF DWORD" topologicalAddress="%MW1692">
-      <comment>AllTypes/testDevice2/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_int_a583_testDevice2" typeName="ARRAY[0..9] OF INT" topologicalAddress="%MW1712">
-      <comment>AllTypes/testDevice2/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_dint_a583_testDevice2" typeName="ARRAY[0..9] OF DINT" topologicalAddress="%MW1722">
-      <comment>AllTypes/testDevice2/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_real_a583_testDevice2" typeName="ARRAY[0..9] OF REAL" topologicalAddress="%MW1742">
-      <comment>AllTypes/testDevice2/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_dt_a583_testDevice2" typeName="ARRAY[0..9] OF DT" topologicalAddress="%MW1762">
-      <comment>AllTypes/testDevice2/MyWOBlock</comment>
-    </variables>
-  </dataBlock>
-</VariablesExchangeFile>
\ No newline at end of file
diff --git a/silecs-codegen/src/xml/test/generated_temp/controller/Schneider_PremiumQuantum.xsy b/silecs-codegen/src/xml/test/generated_temp/controller/Schneider_PremiumQuantum.xsy
deleted file mode 100644
index aeacc101f6ce154e79b2117bea7ede16ef4be048..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/controller/Schneider_PremiumQuantum.xsy
+++ /dev/null
@@ -1,326 +0,0 @@
-<VariablesExchangeFile>
-  <dataBlock>
-    <variables name="_version_a781_SilecsHeader" typeName="STRING[16]" topologicalAddress="%MW0">
-      <variableInit value="DEV"/>
-      <comment>SilecsHeader/SilecsHeader/hdrBlk</comment>
-    </variables>
-    <variables name="_checksum_a781_SilecsHeader" typeName="DWORD" topologicalAddress="%MW8">
-      <variableInit value="3940683809"/>
-      <comment>SilecsHeader/SilecsHeader/hdrBlk</comment>
-    </variables>
-    <variables name="_user_a781_SilecsHeader" typeName="STRING[16]" topologicalAddress="%MW10">
-      <variableInit value="schwinn"/>
-      <comment>SilecsHeader/SilecsHeader/hdrBlk</comment>
-    </variables>
-    <variables name="_date_a781_SilecsHeader" typeName="DT" topologicalAddress="%MW18">
-      <variableInit value="DT#2016-7-29-16:19:24"/>
-      <comment>SilecsHeader/SilecsHeader/hdrBlk</comment>
-    </variables>
-    <variables name="RO_int8_a583_testDevice1" typeName="WORD" topologicalAddress="%MW22">
-      <comment>AllTypes/testDevice1/MyROBlock</comment>
-    </variables>
-    <variables name="RO_uint8_a583_testDevice1" typeName="BYTE" topologicalAddress="%MW23">
-      <comment>AllTypes/testDevice1/MyROBlock</comment>
-    </variables>
-    <variables name="RO_int16_a583_testDevice1" typeName="INT" topologicalAddress="%MW24">
-      <comment>AllTypes/testDevice1/MyROBlock</comment>
-    </variables>
-    <variables name="RO_uint16_a583_testDevice1" typeName="WORD" topologicalAddress="%MW25">
-      <comment>AllTypes/testDevice1/MyROBlock</comment>
-    </variables>
-    <variables name="RO_int32_a583_testDevice1" typeName="DINT" topologicalAddress="%MW26">
-      <comment>AllTypes/testDevice1/MyROBlock</comment>
-    </variables>
-    <variables name="RO_uint32_a583_testDevice1" typeName="DWORD" topologicalAddress="%MW28">
-      <comment>AllTypes/testDevice1/MyROBlock</comment>
-    </variables>
-    <variables name="RO_float32_a583_testDevice1" typeName="REAL" topologicalAddress="%MW30">
-      <comment>AllTypes/testDevice1/MyROBlock</comment>
-    </variables>
-    <variables name="RO_string_a583_testDevice1" typeName="STRING[64]" topologicalAddress="%MW32">
-      <comment>AllTypes/testDevice1/MyROBlock</comment>
-    </variables>
-    <variables name="RO_date_a583_testDevice1" typeName="DT" topologicalAddress="%MW64">
-      <comment>AllTypes/testDevice1/MyROBlock</comment>
-    </variables>
-    <variables name="RO_char_a583_testDevice1" typeName="WORD" topologicalAddress="%MW68">
-      <comment>AllTypes/testDevice1/MyROBlock</comment>
-    </variables>
-    <variables name="RO_byte_a583_testDevice1" typeName="BYTE" topologicalAddress="%MW69">
-      <comment>AllTypes/testDevice1/MyROBlock</comment>
-    </variables>
-    <variables name="RO_word_a583_testDevice1" typeName="WORD" topologicalAddress="%MW70">
-      <comment>AllTypes/testDevice1/MyROBlock</comment>
-    </variables>
-    <variables name="RO_dword_a583_testDevice1" typeName="DWORD" topologicalAddress="%MW71">
-      <comment>AllTypes/testDevice1/MyROBlock</comment>
-    </variables>
-    <variables name="RO_int_a583_testDevice1" typeName="INT" topologicalAddress="%MW73">
-      <comment>AllTypes/testDevice1/MyROBlock</comment>
-    </variables>
-    <variables name="RO_dint_a583_testDevice1" typeName="DINT" topologicalAddress="%MW74">
-      <comment>AllTypes/testDevice1/MyROBlock</comment>
-    </variables>
-    <variables name="RO_real_a583_testDevice1" typeName="REAL" topologicalAddress="%MW76">
-      <comment>AllTypes/testDevice1/MyROBlock</comment>
-    </variables>
-    <variables name="RO_dt_a583_testDevice1" typeName="DT" topologicalAddress="%MW78">
-      <comment>AllTypes/testDevice1/MyROBlock</comment>
-    </variables>
-    <variables name="RO_int8_a583_testDevice2" typeName="WORD" topologicalAddress="%MW82">
-      <comment>AllTypes/testDevice2/MyROBlock</comment>
-    </variables>
-    <variables name="RO_uint8_a583_testDevice2" typeName="BYTE" topologicalAddress="%MW83">
-      <comment>AllTypes/testDevice2/MyROBlock</comment>
-    </variables>
-    <variables name="RO_int16_a583_testDevice2" typeName="INT" topologicalAddress="%MW84">
-      <comment>AllTypes/testDevice2/MyROBlock</comment>
-    </variables>
-    <variables name="RO_uint16_a583_testDevice2" typeName="WORD" topologicalAddress="%MW85">
-      <comment>AllTypes/testDevice2/MyROBlock</comment>
-    </variables>
-    <variables name="RO_int32_a583_testDevice2" typeName="DINT" topologicalAddress="%MW86">
-      <comment>AllTypes/testDevice2/MyROBlock</comment>
-    </variables>
-    <variables name="RO_uint32_a583_testDevice2" typeName="DWORD" topologicalAddress="%MW88">
-      <comment>AllTypes/testDevice2/MyROBlock</comment>
-    </variables>
-    <variables name="RO_float32_a583_testDevice2" typeName="REAL" topologicalAddress="%MW90">
-      <comment>AllTypes/testDevice2/MyROBlock</comment>
-    </variables>
-    <variables name="RO_string_a583_testDevice2" typeName="STRING[64]" topologicalAddress="%MW92">
-      <comment>AllTypes/testDevice2/MyROBlock</comment>
-    </variables>
-    <variables name="RO_date_a583_testDevice2" typeName="DT" topologicalAddress="%MW124">
-      <comment>AllTypes/testDevice2/MyROBlock</comment>
-    </variables>
-    <variables name="RO_char_a583_testDevice2" typeName="WORD" topologicalAddress="%MW128">
-      <comment>AllTypes/testDevice2/MyROBlock</comment>
-    </variables>
-    <variables name="RO_byte_a583_testDevice2" typeName="BYTE" topologicalAddress="%MW129">
-      <comment>AllTypes/testDevice2/MyROBlock</comment>
-    </variables>
-    <variables name="RO_word_a583_testDevice2" typeName="WORD" topologicalAddress="%MW130">
-      <comment>AllTypes/testDevice2/MyROBlock</comment>
-    </variables>
-    <variables name="RO_dword_a583_testDevice2" typeName="DWORD" topologicalAddress="%MW131">
-      <comment>AllTypes/testDevice2/MyROBlock</comment>
-    </variables>
-    <variables name="RO_int_a583_testDevice2" typeName="INT" topologicalAddress="%MW133">
-      <comment>AllTypes/testDevice2/MyROBlock</comment>
-    </variables>
-    <variables name="RO_dint_a583_testDevice2" typeName="DINT" topologicalAddress="%MW134">
-      <comment>AllTypes/testDevice2/MyROBlock</comment>
-    </variables>
-    <variables name="RO_real_a583_testDevice2" typeName="REAL" topologicalAddress="%MW136">
-      <comment>AllTypes/testDevice2/MyROBlock</comment>
-    </variables>
-    <variables name="RO_dt_a583_testDevice2" typeName="DT" topologicalAddress="%MW138">
-      <comment>AllTypes/testDevice2/MyROBlock</comment>
-    </variables>
-    <variables name="RW_int8_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF WORD" topologicalAddress="%MW142">
-      <comment>AllTypes/testDevice1/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_uint8_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF BYTE" topologicalAddress="%MW146">
-      <comment>AllTypes/testDevice1/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_int16_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF INT" topologicalAddress="%MW148">
-      <comment>AllTypes/testDevice1/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_uint16_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF WORD" topologicalAddress="%MW152">
-      <comment>AllTypes/testDevice1/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_int32_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF DINT" topologicalAddress="%MW156">
-      <comment>AllTypes/testDevice1/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_uint32_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF DWORD" topologicalAddress="%MW164">
-      <comment>AllTypes/testDevice1/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_float32_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF REAL" topologicalAddress="%MW172">
-      <comment>AllTypes/testDevice1/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_string_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF STRING[64]" topologicalAddress="%MW180">
-      <comment>AllTypes/testDevice1/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_date_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF DT" topologicalAddress="%MW308">
-      <comment>AllTypes/testDevice1/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_char_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF WORD" topologicalAddress="%MW324">
-      <comment>AllTypes/testDevice1/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_byte_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF BYTE" topologicalAddress="%MW328">
-      <comment>AllTypes/testDevice1/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_word_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF WORD" topologicalAddress="%MW330">
-      <comment>AllTypes/testDevice1/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_dword_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF DWORD" topologicalAddress="%MW334">
-      <comment>AllTypes/testDevice1/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_int_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF INT" topologicalAddress="%MW342">
-      <comment>AllTypes/testDevice1/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_dint_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF DINT" topologicalAddress="%MW346">
-      <comment>AllTypes/testDevice1/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_real_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF REAL" topologicalAddress="%MW354">
-      <comment>AllTypes/testDevice1/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_dt_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF DT" topologicalAddress="%MW362">
-      <comment>AllTypes/testDevice1/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_int8_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF WORD" topologicalAddress="%MW378">
-      <comment>AllTypes/testDevice2/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_uint8_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF BYTE" topologicalAddress="%MW382">
-      <comment>AllTypes/testDevice2/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_int16_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF INT" topologicalAddress="%MW384">
-      <comment>AllTypes/testDevice2/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_uint16_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF WORD" topologicalAddress="%MW388">
-      <comment>AllTypes/testDevice2/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_int32_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF DINT" topologicalAddress="%MW392">
-      <comment>AllTypes/testDevice2/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_uint32_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF DWORD" topologicalAddress="%MW400">
-      <comment>AllTypes/testDevice2/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_float32_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF REAL" topologicalAddress="%MW408">
-      <comment>AllTypes/testDevice2/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_string_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF STRING[64]" topologicalAddress="%MW416">
-      <comment>AllTypes/testDevice2/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_date_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF DT" topologicalAddress="%MW544">
-      <comment>AllTypes/testDevice2/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_char_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF WORD" topologicalAddress="%MW560">
-      <comment>AllTypes/testDevice2/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_byte_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF BYTE" topologicalAddress="%MW564">
-      <comment>AllTypes/testDevice2/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_word_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF WORD" topologicalAddress="%MW566">
-      <comment>AllTypes/testDevice2/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_dword_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF DWORD" topologicalAddress="%MW570">
-      <comment>AllTypes/testDevice2/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_int_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF INT" topologicalAddress="%MW578">
-      <comment>AllTypes/testDevice2/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_dint_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF DINT" topologicalAddress="%MW582">
-      <comment>AllTypes/testDevice2/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_real_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF REAL" topologicalAddress="%MW590">
-      <comment>AllTypes/testDevice2/MyRWBlock</comment>
-    </variables>
-    <variables name="RW_dt_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF DT" topologicalAddress="%MW598">
-      <comment>AllTypes/testDevice2/MyRWBlock</comment>
-    </variables>
-    <variables name="WO_int8_a583_testDevice1" typeName="ARRAY[0..9] OF WORD" topologicalAddress="%MW614">
-      <comment>AllTypes/testDevice1/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_uint8_a583_testDevice1" typeName="ARRAY[0..9] OF BYTE" topologicalAddress="%MW624">
-      <comment>AllTypes/testDevice1/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_int16_a583_testDevice1" typeName="ARRAY[0..9] OF INT" topologicalAddress="%MW629">
-      <comment>AllTypes/testDevice1/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_uint16_a583_testDevice1" typeName="ARRAY[0..9] OF WORD" topologicalAddress="%MW639">
-      <comment>AllTypes/testDevice1/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_int32_a583_testDevice1" typeName="ARRAY[0..9] OF DINT" topologicalAddress="%MW649">
-      <comment>AllTypes/testDevice1/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_uint32_a583_testDevice1" typeName="ARRAY[0..9] OF DWORD" topologicalAddress="%MW669">
-      <comment>AllTypes/testDevice1/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_float32_a583_testDevice1" typeName="ARRAY[0..9] OF REAL" topologicalAddress="%MW689">
-      <comment>AllTypes/testDevice1/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_string_a583_testDevice1" typeName="ARRAY[0..9] OF STRING[64]" topologicalAddress="%MW709">
-      <comment>AllTypes/testDevice1/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_date_a583_testDevice1" typeName="ARRAY[0..9] OF DT" topologicalAddress="%MW1029">
-      <comment>AllTypes/testDevice1/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_char_a583_testDevice1" typeName="ARRAY[0..9] OF WORD" topologicalAddress="%MW1069">
-      <comment>AllTypes/testDevice1/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_byte_a583_testDevice1" typeName="ARRAY[0..9] OF BYTE" topologicalAddress="%MW1079">
-      <comment>AllTypes/testDevice1/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_word_a583_testDevice1" typeName="ARRAY[0..9] OF WORD" topologicalAddress="%MW1084">
-      <comment>AllTypes/testDevice1/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_dword_a583_testDevice1" typeName="ARRAY[0..9] OF DWORD" topologicalAddress="%MW1094">
-      <comment>AllTypes/testDevice1/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_int_a583_testDevice1" typeName="ARRAY[0..9] OF INT" topologicalAddress="%MW1114">
-      <comment>AllTypes/testDevice1/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_dint_a583_testDevice1" typeName="ARRAY[0..9] OF DINT" topologicalAddress="%MW1124">
-      <comment>AllTypes/testDevice1/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_real_a583_testDevice1" typeName="ARRAY[0..9] OF REAL" topologicalAddress="%MW1144">
-      <comment>AllTypes/testDevice1/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_dt_a583_testDevice1" typeName="ARRAY[0..9] OF DT" topologicalAddress="%MW1164">
-      <comment>AllTypes/testDevice1/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_int8_a583_testDevice2" typeName="ARRAY[0..9] OF WORD" topologicalAddress="%MW1204">
-      <comment>AllTypes/testDevice2/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_uint8_a583_testDevice2" typeName="ARRAY[0..9] OF BYTE" topologicalAddress="%MW1214">
-      <comment>AllTypes/testDevice2/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_int16_a583_testDevice2" typeName="ARRAY[0..9] OF INT" topologicalAddress="%MW1219">
-      <comment>AllTypes/testDevice2/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_uint16_a583_testDevice2" typeName="ARRAY[0..9] OF WORD" topologicalAddress="%MW1229">
-      <comment>AllTypes/testDevice2/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_int32_a583_testDevice2" typeName="ARRAY[0..9] OF DINT" topologicalAddress="%MW1239">
-      <comment>AllTypes/testDevice2/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_uint32_a583_testDevice2" typeName="ARRAY[0..9] OF DWORD" topologicalAddress="%MW1259">
-      <comment>AllTypes/testDevice2/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_float32_a583_testDevice2" typeName="ARRAY[0..9] OF REAL" topologicalAddress="%MW1279">
-      <comment>AllTypes/testDevice2/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_string_a583_testDevice2" typeName="ARRAY[0..9] OF STRING[64]" topologicalAddress="%MW1299">
-      <comment>AllTypes/testDevice2/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_date_a583_testDevice2" typeName="ARRAY[0..9] OF DT" topologicalAddress="%MW1619">
-      <comment>AllTypes/testDevice2/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_char_a583_testDevice2" typeName="ARRAY[0..9] OF WORD" topologicalAddress="%MW1659">
-      <comment>AllTypes/testDevice2/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_byte_a583_testDevice2" typeName="ARRAY[0..9] OF BYTE" topologicalAddress="%MW1669">
-      <comment>AllTypes/testDevice2/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_word_a583_testDevice2" typeName="ARRAY[0..9] OF WORD" topologicalAddress="%MW1674">
-      <comment>AllTypes/testDevice2/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_dword_a583_testDevice2" typeName="ARRAY[0..9] OF DWORD" topologicalAddress="%MW1684">
-      <comment>AllTypes/testDevice2/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_int_a583_testDevice2" typeName="ARRAY[0..9] OF INT" topologicalAddress="%MW1704">
-      <comment>AllTypes/testDevice2/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_dint_a583_testDevice2" typeName="ARRAY[0..9] OF DINT" topologicalAddress="%MW1714">
-      <comment>AllTypes/testDevice2/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_real_a583_testDevice2" typeName="ARRAY[0..9] OF REAL" topologicalAddress="%MW1734">
-      <comment>AllTypes/testDevice2/MyWOBlock</comment>
-    </variables>
-    <variables name="WO_dt_a583_testDevice2" typeName="ARRAY[0..9] OF DT" topologicalAddress="%MW1754">
-      <comment>AllTypes/testDevice2/MyWOBlock</comment>
-    </variables>
-  </dataBlock>
-</VariablesExchangeFile>
\ No newline at end of file
diff --git a/silecs-codegen/src/xml/test/generated_temp/controller/Siemens_Step7Block.scl b/silecs-codegen/src/xml/test/generated_temp/controller/Siemens_Step7Block.scl
deleted file mode 100644
index 1da7cde4463253bab319fe6349442d736ab012ae..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/controller/Siemens_Step7Block.scl
+++ /dev/null
@@ -1,150 +0,0 @@
-//---------------------------------------------------------------------
-// SilecsHeader/ v1.0.0
-// BLOCK Type definition
-//---------------------------------------------------------------------
-TYPE _SilecsHeader_hdrBlk
-AUTHOR:    schwinn
-FAMILY:    SILECS
-NAME:      UDTB
-    STRUCT
-        _version: STRING[16] := 'SILECS_DEV';
-        _checksum: DWORD := DW#16#eae21021;
-        _user: STRING[16] := 'schwinn';
-        _date: DT := DT#2016-7-29-16:19:24;
-
-    END_STRUCT;
-END_TYPE
-
-//---------------------------------------------------------------------
-// SilecsHeader/ v1.0.0
-// Block instance definition
-//---------------------------------------------------------------------
-// SilecsHeader_SilecsHeader ...........................................
-DATA_BLOCK DB0
-{ S7_Optimized_Access := 'FALSE' }
-AUTHOR:    schwinn
-FAMILY:    SILECS
-NAME:      DEV_MODE
-STRUCT
-    hdrBlk: _SilecsHeader_hdrBlk;
-
-END_STRUCT;
-BEGIN
-END_DATA_BLOCK
-
-//---------------------------------------------------------------------
-// AllTypes/ v0.1.0
-// BLOCK Type definition
-//---------------------------------------------------------------------
-TYPE _AllTypes_MyROBlock
-AUTHOR:    schwinn
-FAMILY:    SILECS
-NAME:      UDTB
-    STRUCT
-        RO_int8: CHAR;
-        RO_uint8: BYTE;
-        RO_int16: INT;
-        RO_uint16: WORD;
-        RO_int32: DINT;
-        RO_uint32: DWORD;
-        RO_float32: REAL;
-        RO_string: STRING[64];
-        RO_date: DT;
-        RO_char: CHAR;
-        RO_byte: BYTE;
-        RO_word: WORD;
-        RO_dword: DWORD;
-        RO_int: INT;
-        RO_dint: DINT;
-        RO_real: REAL;
-        RO_dt: DT;
-
-    END_STRUCT;
-END_TYPE
-
-TYPE _AllTypes_MyRWBlock
-AUTHOR:    schwinn
-FAMILY:    SILECS
-NAME:      UDTB
-    STRUCT
-        RW_int8: ARRAY[0..1, 0..1] OF CHAR;
-        RW_uint8: ARRAY[0..1, 0..1] OF BYTE;
-        RW_int16: ARRAY[0..1, 0..1] OF INT;
-        RW_uint16: ARRAY[0..1, 0..1] OF WORD;
-        RW_int32: ARRAY[0..1, 0..1] OF DINT;
-        RW_uint32: ARRAY[0..1, 0..1] OF DWORD;
-        RW_float32: ARRAY[0..1, 0..1] OF REAL;
-        RW_string: ARRAY[0..1, 0..1] OF STRING[64];
-        RW_date: ARRAY[0..1, 0..1] OF DT;
-        RW_char: ARRAY[0..1, 0..1] OF CHAR;
-        RW_byte: ARRAY[0..1, 0..1] OF BYTE;
-        RW_word: ARRAY[0..1, 0..1] OF WORD;
-        RW_dword: ARRAY[0..1, 0..1] OF DWORD;
-        RW_int: ARRAY[0..1, 0..1] OF INT;
-        RW_dint: ARRAY[0..1, 0..1] OF DINT;
-        RW_real: ARRAY[0..1, 0..1] OF REAL;
-        RW_dt: ARRAY[0..1, 0..1] OF DT;
-
-    END_STRUCT;
-END_TYPE
-
-TYPE _AllTypes_MyWOBlock
-AUTHOR:    schwinn
-FAMILY:    SILECS
-NAME:      UDTB
-    STRUCT
-        WO_int8: ARRAY[0..9] OF CHAR;
-        WO_uint8: ARRAY[0..9] OF BYTE;
-        WO_int16: ARRAY[0..9] OF INT;
-        WO_uint16: ARRAY[0..9] OF WORD;
-        WO_int32: ARRAY[0..9] OF DINT;
-        WO_uint32: ARRAY[0..9] OF DWORD;
-        WO_float32: ARRAY[0..9] OF REAL;
-        WO_string: ARRAY[0..9] OF STRING[64];
-        WO_date: ARRAY[0..9] OF DT;
-        WO_char: ARRAY[0..9] OF CHAR;
-        WO_byte: ARRAY[0..9] OF BYTE;
-        WO_word: ARRAY[0..9] OF WORD;
-        WO_dword: ARRAY[0..9] OF DWORD;
-        WO_int: ARRAY[0..9] OF INT;
-        WO_dint: ARRAY[0..9] OF DINT;
-        WO_real: ARRAY[0..9] OF REAL;
-        WO_dt: ARRAY[0..9] OF DT;
-
-    END_STRUCT;
-END_TYPE
-
-//---------------------------------------------------------------------
-// AllTypes/ v0.1.0
-// Block instance definition
-//---------------------------------------------------------------------
-// AllTypes_testDevice1 ...........................................
-DATA_BLOCK DB1
-{ S7_Optimized_Access := 'FALSE' }
-AUTHOR:    schwinn
-FAMILY:    SILECS
-NAME:      DEV_MODE
-STRUCT
-    MyROBlock: _AllTypes_MyROBlock;
-    MyRWBlock: _AllTypes_MyRWBlock;
-    MyWOBlock: _AllTypes_MyWOBlock;
-
-END_STRUCT;
-BEGIN
-END_DATA_BLOCK
-
-// AllTypes_testDevice2 ...........................................
-DATA_BLOCK DB2
-{ S7_Optimized_Access := 'FALSE' }
-AUTHOR:    schwinn
-FAMILY:    SILECS
-NAME:      DEV_MODE
-STRUCT
-    MyROBlock: _AllTypes_MyROBlock;
-    MyRWBlock: _AllTypes_MyRWBlock;
-    MyWOBlock: _AllTypes_MyWOBlock;
-
-END_STRUCT;
-BEGIN
-END_DATA_BLOCK
-
diff --git a/silecs-codegen/src/xml/test/generated_temp/controller/Siemens_Step7Block.sdf b/silecs-codegen/src/xml/test/generated_temp/controller/Siemens_Step7Block.sdf
deleted file mode 100644
index e5d2ddb66c2635a199c7f174cfbfd46beccb8ef8..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/controller/Siemens_Step7Block.sdf
+++ /dev/null
@@ -1,7 +0,0 @@
-"_SilecsHeader_hdrBlk","UDT 0","UDT 0","[SilecsHeader/1.0.0] UDT symbol: _<class-name>_<block-name>"
-"SilecsHeader_SilecsHeader","DB 0","DB 0","[SilecsHeader/1.0.0] DB symbol: <class-name>_<device-label | device-id>"
-"_AllTypes_MyROBlock","UDT 1","UDT 1","[AllTypes/0.1.0] UDT symbol: _<class-name>_<block-name>"
-"_AllTypes_MyRWBlock","UDT 2","UDT 2",""
-"_AllTypes_MyWOBlock","UDT 3","UDT 3",""
-"AllTypes_testDevice1","DB 1","DB 1","[AllTypes/0.1.0] DB symbol: <class-name>_<device-label | device-id>"
-"AllTypes_testDevice2","DB 2","DB 2",""
diff --git a/silecs-codegen/src/xml/test/generated_temp/controller/Siemens_Step7Device.scl b/silecs-codegen/src/xml/test/generated_temp/controller/Siemens_Step7Device.scl
deleted file mode 100644
index e2279cfd4930ace7260f0479d83de97f374e5410..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/controller/Siemens_Step7Device.scl
+++ /dev/null
@@ -1,162 +0,0 @@
-//---------------------------------------------------------------------
-// SilecsHeader/ v1.0.0
-// BLOCK Type definition
-//---------------------------------------------------------------------
-TYPE _SilecsHeader_hdrBlk
-AUTHOR:    schwinn
-FAMILY:    SILECS
-NAME:      UDTB
-    STRUCT
-        _version: STRING[16] := 'SILECS_DEV';
-        _checksum: DWORD := DW#16#eae21021;
-        _user: STRING[16] := 'schwinn';
-        _date: DT := DT#2016-7-29-16:19:24;
-
-    END_STRUCT;
-END_TYPE
-
-//---------------------------------------------------------------------
-// SilecsHeader/ v1.0.0
-// Block instance definition
-//---------------------------------------------------------------------
-// SilecsHeader_hdrBlk ...........................................
-DATA_BLOCK DB0
-{ S7_Optimized_Access := 'FALSE' }
-AUTHOR:    schwinn
-FAMILY:    SILECS
-NAME:      BLK_MODE
-STRUCT
-    SilecsHeader: _SilecsHeader_hdrBlk;
-
-END_STRUCT;
-BEGIN
-END_DATA_BLOCK
-
-//---------------------------------------------------------------------
-// AllTypes/ v0.1.0
-// BLOCK Type definition
-//---------------------------------------------------------------------
-TYPE _AllTypes_MyROBlock
-AUTHOR:    schwinn
-FAMILY:    SILECS
-NAME:      UDTB
-    STRUCT
-        RO_int8: CHAR;
-        RO_uint8: BYTE;
-        RO_int16: INT;
-        RO_uint16: WORD;
-        RO_int32: DINT;
-        RO_uint32: DWORD;
-        RO_float32: REAL;
-        RO_string: STRING[64];
-        RO_date: DT;
-        RO_char: CHAR;
-        RO_byte: BYTE;
-        RO_word: WORD;
-        RO_dword: DWORD;
-        RO_int: INT;
-        RO_dint: DINT;
-        RO_real: REAL;
-        RO_dt: DT;
-
-    END_STRUCT;
-END_TYPE
-
-TYPE _AllTypes_MyRWBlock
-AUTHOR:    schwinn
-FAMILY:    SILECS
-NAME:      UDTB
-    STRUCT
-        RW_int8: ARRAY[0..1, 0..1] OF CHAR;
-        RW_uint8: ARRAY[0..1, 0..1] OF BYTE;
-        RW_int16: ARRAY[0..1, 0..1] OF INT;
-        RW_uint16: ARRAY[0..1, 0..1] OF WORD;
-        RW_int32: ARRAY[0..1, 0..1] OF DINT;
-        RW_uint32: ARRAY[0..1, 0..1] OF DWORD;
-        RW_float32: ARRAY[0..1, 0..1] OF REAL;
-        RW_string: ARRAY[0..1, 0..1] OF STRING[64];
-        RW_date: ARRAY[0..1, 0..1] OF DT;
-        RW_char: ARRAY[0..1, 0..1] OF CHAR;
-        RW_byte: ARRAY[0..1, 0..1] OF BYTE;
-        RW_word: ARRAY[0..1, 0..1] OF WORD;
-        RW_dword: ARRAY[0..1, 0..1] OF DWORD;
-        RW_int: ARRAY[0..1, 0..1] OF INT;
-        RW_dint: ARRAY[0..1, 0..1] OF DINT;
-        RW_real: ARRAY[0..1, 0..1] OF REAL;
-        RW_dt: ARRAY[0..1, 0..1] OF DT;
-
-    END_STRUCT;
-END_TYPE
-
-TYPE _AllTypes_MyWOBlock
-AUTHOR:    schwinn
-FAMILY:    SILECS
-NAME:      UDTB
-    STRUCT
-        WO_int8: ARRAY[0..9] OF CHAR;
-        WO_uint8: ARRAY[0..9] OF BYTE;
-        WO_int16: ARRAY[0..9] OF INT;
-        WO_uint16: ARRAY[0..9] OF WORD;
-        WO_int32: ARRAY[0..9] OF DINT;
-        WO_uint32: ARRAY[0..9] OF DWORD;
-        WO_float32: ARRAY[0..9] OF REAL;
-        WO_string: ARRAY[0..9] OF STRING[64];
-        WO_date: ARRAY[0..9] OF DT;
-        WO_char: ARRAY[0..9] OF CHAR;
-        WO_byte: ARRAY[0..9] OF BYTE;
-        WO_word: ARRAY[0..9] OF WORD;
-        WO_dword: ARRAY[0..9] OF DWORD;
-        WO_int: ARRAY[0..9] OF INT;
-        WO_dint: ARRAY[0..9] OF DINT;
-        WO_real: ARRAY[0..9] OF REAL;
-        WO_dt: ARRAY[0..9] OF DT;
-
-    END_STRUCT;
-END_TYPE
-
-//---------------------------------------------------------------------
-// AllTypes/ v0.1.0
-// Block instance definition
-//---------------------------------------------------------------------
-// AllTypes_MyROBlock ...........................................
-DATA_BLOCK DB1
-{ S7_Optimized_Access := 'FALSE' }
-AUTHOR:    schwinn
-FAMILY:    SILECS
-NAME:      BLK_MODE
-STRUCT
-    testDevice1: _AllTypes_MyROBlock;
-    testDevice2: _AllTypes_MyROBlock;
-
-END_STRUCT;
-BEGIN
-END_DATA_BLOCK
-
-// AllTypes_MyRWBlock ...........................................
-DATA_BLOCK DB2
-{ S7_Optimized_Access := 'FALSE' }
-AUTHOR:    schwinn
-FAMILY:    SILECS
-NAME:      BLK_MODE
-STRUCT
-    testDevice1: _AllTypes_MyRWBlock;
-    testDevice2: _AllTypes_MyRWBlock;
-
-END_STRUCT;
-BEGIN
-END_DATA_BLOCK
-
-// AllTypes_MyWOBlock ...........................................
-DATA_BLOCK DB3
-{ S7_Optimized_Access := 'FALSE' }
-AUTHOR:    schwinn
-FAMILY:    SILECS
-NAME:      BLK_MODE
-STRUCT
-    testDevice1: _AllTypes_MyWOBlock;
-    testDevice2: _AllTypes_MyWOBlock;
-
-END_STRUCT;
-BEGIN
-END_DATA_BLOCK
-
diff --git a/silecs-codegen/src/xml/test/generated_temp/controller/Siemens_Step7Device.sdf b/silecs-codegen/src/xml/test/generated_temp/controller/Siemens_Step7Device.sdf
deleted file mode 100644
index 29a5f5851a5e2e6dea4c19a034b129e1333190e5..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/controller/Siemens_Step7Device.sdf
+++ /dev/null
@@ -1,8 +0,0 @@
-"_SilecsHeader_hdrBlk","UDT 0","UDT 0","[SilecsHeader/1.0.0] UDT symbol: _<class-name>_<block-name>"
-"SilecsHeader_hdrBlk","DB 0","DB 0","[SilecsHeader/1.0.0] DB symbol: <class-name>_<block-name>"
-"_AllTypes_MyROBlock","UDT 1","UDT 1","[AllTypes/0.1.0] UDT symbol: _<class-name>_<block-name>"
-"_AllTypes_MyRWBlock","UDT 2","UDT 2",""
-"_AllTypes_MyWOBlock","UDT 3","UDT 3",""
-"AllTypes_MyROBlock","DB 1","DB 1","[AllTypes/0.1.0] DB symbol: <class-name>_<block-name>"
-"AllTypes_MyRWBlock","DB 2","DB 2",""
-"AllTypes_MyWOBlock","DB 3","DB 3",""
diff --git a/silecs-codegen/src/xml/test/generated_temp/controller/Siemens_TiaBlock.scl b/silecs-codegen/src/xml/test/generated_temp/controller/Siemens_TiaBlock.scl
deleted file mode 100644
index 0aa9c5298a61d543ba70e48bc3e65bfa2aa91c05..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/controller/Siemens_TiaBlock.scl
+++ /dev/null
@@ -1,158 +0,0 @@
-//---------------------------------------------------------------------
-// SilecsHeader/ v1.0.0
-// BLOCK Type definition
-//---------------------------------------------------------------------
-TYPE _SilecsHeader_hdrBlk
-AUTHOR:    schwinn
-FAMILY:    SILECS
-NAME:      UDTB
-    STRUCT
-        _version: STRING[16] := 'SILECS_DEV';
-        _checksum: DWORD := DW#16#eae21021;
-        _user: STRING[16] := 'schwinn';
-        _date: DT := DT#2016-7-29-16:19:24;
-
-    END_STRUCT;
-END_TYPE
-
-//---------------------------------------------------------------------
-// SilecsHeader/ v1.0.0
-// Block instance definition
-//---------------------------------------------------------------------
-DATA_BLOCK SilecsHeader_hdrBlk
-{ S7_Optimized_Access := 'FALSE' }
-AUTHOR:    schwinn
-FAMILY:    SILECS
-NAME:      BLK_MODE
-STRUCT
-    SilecsHeader: _SilecsHeader_hdrBlk;
-
-END_STRUCT;
-BEGIN
-END_DATA_BLOCK
-
-//---------------------------------------------------------------------
-// AllTypes/ v0.1.0
-// BLOCK Type definition
-//---------------------------------------------------------------------
-TYPE _AllTypes_MyROBlock
-AUTHOR:    schwinn
-FAMILY:    SILECS
-NAME:      UDTB
-    STRUCT
-        RO_int8: CHAR;
-        RO_uint8: BYTE;
-        RO_int16: INT;
-        RO_uint16: WORD;
-        RO_int32: DINT;
-        RO_uint32: DWORD;
-        RO_float32: REAL;
-        RO_string: STRING[64];
-        RO_date: DT;
-        RO_char: CHAR;
-        RO_byte: BYTE;
-        RO_word: WORD;
-        RO_dword: DWORD;
-        RO_int: INT;
-        RO_dint: DINT;
-        RO_real: REAL;
-        RO_dt: DT;
-
-    END_STRUCT;
-END_TYPE
-
-TYPE _AllTypes_MyRWBlock
-AUTHOR:    schwinn
-FAMILY:    SILECS
-NAME:      UDTB
-    STRUCT
-        RW_int8: ARRAY[0..1, 0..1] OF CHAR;
-        RW_uint8: ARRAY[0..1, 0..1] OF BYTE;
-        RW_int16: ARRAY[0..1, 0..1] OF INT;
-        RW_uint16: ARRAY[0..1, 0..1] OF WORD;
-        RW_int32: ARRAY[0..1, 0..1] OF DINT;
-        RW_uint32: ARRAY[0..1, 0..1] OF DWORD;
-        RW_float32: ARRAY[0..1, 0..1] OF REAL;
-        RW_string: ARRAY[0..1, 0..1] OF STRING[64];
-        RW_date: ARRAY[0..1, 0..1] OF DT;
-        RW_char: ARRAY[0..1, 0..1] OF CHAR;
-        RW_byte: ARRAY[0..1, 0..1] OF BYTE;
-        RW_word: ARRAY[0..1, 0..1] OF WORD;
-        RW_dword: ARRAY[0..1, 0..1] OF DWORD;
-        RW_int: ARRAY[0..1, 0..1] OF INT;
-        RW_dint: ARRAY[0..1, 0..1] OF DINT;
-        RW_real: ARRAY[0..1, 0..1] OF REAL;
-        RW_dt: ARRAY[0..1, 0..1] OF DT;
-
-    END_STRUCT;
-END_TYPE
-
-TYPE _AllTypes_MyWOBlock
-AUTHOR:    schwinn
-FAMILY:    SILECS
-NAME:      UDTB
-    STRUCT
-        WO_int8: ARRAY[0..9] OF CHAR;
-        WO_uint8: ARRAY[0..9] OF BYTE;
-        WO_int16: ARRAY[0..9] OF INT;
-        WO_uint16: ARRAY[0..9] OF WORD;
-        WO_int32: ARRAY[0..9] OF DINT;
-        WO_uint32: ARRAY[0..9] OF DWORD;
-        WO_float32: ARRAY[0..9] OF REAL;
-        WO_string: ARRAY[0..9] OF STRING[64];
-        WO_date: ARRAY[0..9] OF DT;
-        WO_char: ARRAY[0..9] OF CHAR;
-        WO_byte: ARRAY[0..9] OF BYTE;
-        WO_word: ARRAY[0..9] OF WORD;
-        WO_dword: ARRAY[0..9] OF DWORD;
-        WO_int: ARRAY[0..9] OF INT;
-        WO_dint: ARRAY[0..9] OF DINT;
-        WO_real: ARRAY[0..9] OF REAL;
-        WO_dt: ARRAY[0..9] OF DT;
-
-    END_STRUCT;
-END_TYPE
-
-//---------------------------------------------------------------------
-// AllTypes/ v0.1.0
-// Block instance definition
-//---------------------------------------------------------------------
-DATA_BLOCK AllTypes_MyROBlock
-{ S7_Optimized_Access := 'FALSE' }
-AUTHOR:    schwinn
-FAMILY:    SILECS
-NAME:      BLK_MODE
-STRUCT
-    testDevice1: _AllTypes_MyROBlock;
-    testDevice2: _AllTypes_MyROBlock;
-
-END_STRUCT;
-BEGIN
-END_DATA_BLOCK
-
-DATA_BLOCK AllTypes_MyRWBlock
-{ S7_Optimized_Access := 'FALSE' }
-AUTHOR:    schwinn
-FAMILY:    SILECS
-NAME:      BLK_MODE
-STRUCT
-    testDevice1: _AllTypes_MyRWBlock;
-    testDevice2: _AllTypes_MyRWBlock;
-
-END_STRUCT;
-BEGIN
-END_DATA_BLOCK
-
-DATA_BLOCK AllTypes_MyWOBlock
-{ S7_Optimized_Access := 'FALSE' }
-AUTHOR:    schwinn
-FAMILY:    SILECS
-NAME:      BLK_MODE
-STRUCT
-    testDevice1: _AllTypes_MyWOBlock;
-    testDevice2: _AllTypes_MyWOBlock;
-
-END_STRUCT;
-BEGIN
-END_DATA_BLOCK
-
diff --git a/silecs-codegen/src/xml/test/generated_temp/controller/Siemens_TiaBlock.sdf b/silecs-codegen/src/xml/test/generated_temp/controller/Siemens_TiaBlock.sdf
deleted file mode 100644
index 29a5f5851a5e2e6dea4c19a034b129e1333190e5..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/controller/Siemens_TiaBlock.sdf
+++ /dev/null
@@ -1,8 +0,0 @@
-"_SilecsHeader_hdrBlk","UDT 0","UDT 0","[SilecsHeader/1.0.0] UDT symbol: _<class-name>_<block-name>"
-"SilecsHeader_hdrBlk","DB 0","DB 0","[SilecsHeader/1.0.0] DB symbol: <class-name>_<block-name>"
-"_AllTypes_MyROBlock","UDT 1","UDT 1","[AllTypes/0.1.0] UDT symbol: _<class-name>_<block-name>"
-"_AllTypes_MyRWBlock","UDT 2","UDT 2",""
-"_AllTypes_MyWOBlock","UDT 3","UDT 3",""
-"AllTypes_MyROBlock","DB 1","DB 1","[AllTypes/0.1.0] DB symbol: <class-name>_<block-name>"
-"AllTypes_MyRWBlock","DB 2","DB 2",""
-"AllTypes_MyWOBlock","DB 3","DB 3",""
diff --git a/silecs-codegen/src/xml/test/generated_temp/controller/Siemens_TiaDevice.scl b/silecs-codegen/src/xml/test/generated_temp/controller/Siemens_TiaDevice.scl
deleted file mode 100644
index 02ea3f6abbdfa540ba88f40b79a6e27fa3d9a086..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/controller/Siemens_TiaDevice.scl
+++ /dev/null
@@ -1,147 +0,0 @@
-//---------------------------------------------------------------------
-// SilecsHeader/ v1.0.0
-// BLOCK Type definition
-//---------------------------------------------------------------------
-TYPE _SilecsHeader_hdrBlk
-AUTHOR:    schwinn
-FAMILY:    SILECS
-NAME:      UDTB
-    STRUCT
-        _version: STRING[16] := 'SILECS_DEV';
-        _checksum: DWORD := DW#16#eae21021;
-        _user: STRING[16] := 'schwinn';
-        _date: DT := DT#2016-7-29-16:19:24;
-
-    END_STRUCT;
-END_TYPE
-
-//---------------------------------------------------------------------
-// SilecsHeader/ v1.0.0
-// Block instance definition
-//---------------------------------------------------------------------
-DATA_BLOCK SilecsHeader_SilecsHeader
-{ S7_Optimized_Access := 'FALSE' }
-AUTHOR:    schwinn
-FAMILY:    SILECS
-NAME:      DEV_MODE
-STRUCT
-    hdrBlk: _SilecsHeader_hdrBlk;
-
-END_STRUCT;
-BEGIN
-END_DATA_BLOCK
-
-//---------------------------------------------------------------------
-// AllTypes/ v0.1.0
-// BLOCK Type definition
-//---------------------------------------------------------------------
-TYPE _AllTypes_MyROBlock
-AUTHOR:    schwinn
-FAMILY:    SILECS
-NAME:      UDTB
-    STRUCT
-        RO_int8: CHAR;
-        RO_uint8: BYTE;
-        RO_int16: INT;
-        RO_uint16: WORD;
-        RO_int32: DINT;
-        RO_uint32: DWORD;
-        RO_float32: REAL;
-        RO_string: STRING[64];
-        RO_date: DT;
-        RO_char: CHAR;
-        RO_byte: BYTE;
-        RO_word: WORD;
-        RO_dword: DWORD;
-        RO_int: INT;
-        RO_dint: DINT;
-        RO_real: REAL;
-        RO_dt: DT;
-
-    END_STRUCT;
-END_TYPE
-
-TYPE _AllTypes_MyRWBlock
-AUTHOR:    schwinn
-FAMILY:    SILECS
-NAME:      UDTB
-    STRUCT
-        RW_int8: ARRAY[0..1, 0..1] OF CHAR;
-        RW_uint8: ARRAY[0..1, 0..1] OF BYTE;
-        RW_int16: ARRAY[0..1, 0..1] OF INT;
-        RW_uint16: ARRAY[0..1, 0..1] OF WORD;
-        RW_int32: ARRAY[0..1, 0..1] OF DINT;
-        RW_uint32: ARRAY[0..1, 0..1] OF DWORD;
-        RW_float32: ARRAY[0..1, 0..1] OF REAL;
-        RW_string: ARRAY[0..1, 0..1] OF STRING[64];
-        RW_date: ARRAY[0..1, 0..1] OF DT;
-        RW_char: ARRAY[0..1, 0..1] OF CHAR;
-        RW_byte: ARRAY[0..1, 0..1] OF BYTE;
-        RW_word: ARRAY[0..1, 0..1] OF WORD;
-        RW_dword: ARRAY[0..1, 0..1] OF DWORD;
-        RW_int: ARRAY[0..1, 0..1] OF INT;
-        RW_dint: ARRAY[0..1, 0..1] OF DINT;
-        RW_real: ARRAY[0..1, 0..1] OF REAL;
-        RW_dt: ARRAY[0..1, 0..1] OF DT;
-
-    END_STRUCT;
-END_TYPE
-
-TYPE _AllTypes_MyWOBlock
-AUTHOR:    schwinn
-FAMILY:    SILECS
-NAME:      UDTB
-    STRUCT
-        WO_int8: ARRAY[0..9] OF CHAR;
-        WO_uint8: ARRAY[0..9] OF BYTE;
-        WO_int16: ARRAY[0..9] OF INT;
-        WO_uint16: ARRAY[0..9] OF WORD;
-        WO_int32: ARRAY[0..9] OF DINT;
-        WO_uint32: ARRAY[0..9] OF DWORD;
-        WO_float32: ARRAY[0..9] OF REAL;
-        WO_string: ARRAY[0..9] OF STRING[64];
-        WO_date: ARRAY[0..9] OF DT;
-        WO_char: ARRAY[0..9] OF CHAR;
-        WO_byte: ARRAY[0..9] OF BYTE;
-        WO_word: ARRAY[0..9] OF WORD;
-        WO_dword: ARRAY[0..9] OF DWORD;
-        WO_int: ARRAY[0..9] OF INT;
-        WO_dint: ARRAY[0..9] OF DINT;
-        WO_real: ARRAY[0..9] OF REAL;
-        WO_dt: ARRAY[0..9] OF DT;
-
-    END_STRUCT;
-END_TYPE
-
-//---------------------------------------------------------------------
-// AllTypes/ v0.1.0
-// Block instance definition
-//---------------------------------------------------------------------
-DATA_BLOCK AllTypes_testDevice1
-{ S7_Optimized_Access := 'FALSE' }
-AUTHOR:    schwinn
-FAMILY:    SILECS
-NAME:      DEV_MODE
-STRUCT
-    MyROBlock: _AllTypes_MyROBlock;
-    MyRWBlock: _AllTypes_MyRWBlock;
-    MyWOBlock: _AllTypes_MyWOBlock;
-
-END_STRUCT;
-BEGIN
-END_DATA_BLOCK
-
-DATA_BLOCK AllTypes_testDevice2
-{ S7_Optimized_Access := 'FALSE' }
-AUTHOR:    schwinn
-FAMILY:    SILECS
-NAME:      DEV_MODE
-STRUCT
-    MyROBlock: _AllTypes_MyROBlock;
-    MyRWBlock: _AllTypes_MyRWBlock;
-    MyWOBlock: _AllTypes_MyWOBlock;
-
-END_STRUCT;
-BEGIN
-END_DATA_BLOCK
-
diff --git a/silecs-codegen/src/xml/test/generated_temp/controller/Siemens_TiaDevice.sdf b/silecs-codegen/src/xml/test/generated_temp/controller/Siemens_TiaDevice.sdf
deleted file mode 100644
index e5d2ddb66c2635a199c7f174cfbfd46beccb8ef8..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/controller/Siemens_TiaDevice.sdf
+++ /dev/null
@@ -1,7 +0,0 @@
-"_SilecsHeader_hdrBlk","UDT 0","UDT 0","[SilecsHeader/1.0.0] UDT symbol: _<class-name>_<block-name>"
-"SilecsHeader_SilecsHeader","DB 0","DB 0","[SilecsHeader/1.0.0] DB symbol: <class-name>_<device-label | device-id>"
-"_AllTypes_MyROBlock","UDT 1","UDT 1","[AllTypes/0.1.0] UDT symbol: _<class-name>_<block-name>"
-"_AllTypes_MyRWBlock","UDT 2","UDT 2",""
-"_AllTypes_MyWOBlock","UDT 3","UDT 3",""
-"AllTypes_testDevice1","DB 1","DB 1","[AllTypes/0.1.0] DB symbol: <class-name>_<device-label | device-id>"
-"AllTypes_testDevice2","DB 2","DB 2",""
diff --git a/silecs-codegen/src/xml/test/generated_temp/controller/Virtual_SiemensBlock.AllTypes.h b/silecs-codegen/src/xml/test/generated_temp/controller/Virtual_SiemensBlock.AllTypes.h
deleted file mode 100644
index 95bdd54ce7657ae4d03075fb2a787a251677a0af..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/controller/Virtual_SiemensBlock.AllTypes.h
+++ /dev/null
@@ -1,1272 +0,0 @@
-
-/* Copyright CERN 2015
- *
- * WARNING: This code is automatically generated from your SILECS deploy unit document.
- * You should never modify the content of this file as it would break consistency.
- * Furthermore, any changes will be overwritten in the next code generation.
- * Any modification shall be done using the SILECS development environment
- * and regenerating this source code.
- */
-
-#ifndef ALLTYPES_0_1_0_H_
-#define ALLTYPES_0_1_0_H_
-
-#include <silecs-virtual-controller/interface/Block.h>
-#include <silecs-virtual-controller/interface/DeployUnit.h>
-#include <silecs-virtual-controller/interface/Design.h>
-#include <silecs-virtual-controller/interface/Device.h>
-
-namespace AllTypes_0_1_0
-{
-
-class Design;
-
-class MyROBlock : public SilecsServer::Block
-{
-public:
-    /*!
-     * \brief MyROBlock constructor. It creates an empty block.
-     */
-    MyROBlock() : SilecsServer::Block("AllTypes:MyROBlock")
-    {
-    
-    }
-
-    ~MyROBlock()
-    {
-    }
-    	
-	/*!
-	 * \brief Get RO_int8 register.
-	 * \return value.
-	 */
-	int8_t getRO_int8() const
-	{
-		return structData_.RO_int8;
-	}
-
-	/*!
-	 * \brief Set RO_int8 register.
-	 * \param value to be set.
-	 */
-	void setRO_int8(int8_t value)
-	{
-		structData_.RO_int8 = value;
-	}
-	
-	/*!
-	 * \brief Get RO_uint8 register.
-	 * \return value.
-	 */
-	uint8_t getRO_uint8() const
-	{
-		return structData_.RO_uint8;
-	}
-
-	/*!
-	 * \brief Set RO_uint8 register.
-	 * \param value to be set.
-	 */
-	void setRO_uint8(uint8_t value)
-	{
-		structData_.RO_uint8 = value;
-	}
-	
-	/*!
-	 * \brief Get RO_int16 register.
-	 * \return value.
-	 */
-	int16_t getRO_int16() const
-	{
-		return structData_.RO_int16;
-	}
-
-	/*!
-	 * \brief Set RO_int16 register.
-	 * \param value to be set.
-	 */
-	void setRO_int16(int16_t value)
-	{
-		structData_.RO_int16 = value;
-	}
-	
-	/*!
-	 * \brief Get RO_uint16 register.
-	 * \return value.
-	 */
-	uint16_t getRO_uint16() const
-	{
-		return structData_.RO_uint16;
-	}
-
-	/*!
-	 * \brief Set RO_uint16 register.
-	 * \param value to be set.
-	 */
-	void setRO_uint16(uint16_t value)
-	{
-		structData_.RO_uint16 = value;
-	}
-	
-	/*!
-	 * \brief Get RO_int32 register.
-	 * \return value.
-	 */
-	int32_t getRO_int32() const
-	{
-		return structData_.RO_int32;
-	}
-
-	/*!
-	 * \brief Set RO_int32 register.
-	 * \param value to be set.
-	 */
-	void setRO_int32(int32_t value)
-	{
-		structData_.RO_int32 = value;
-	}
-	
-	/*!
-	 * \brief Get RO_uint32 register.
-	 * \return value.
-	 */
-	uint32_t getRO_uint32() const
-	{
-		return structData_.RO_uint32;
-	}
-
-	/*!
-	 * \brief Set RO_uint32 register.
-	 * \param value to be set.
-	 */
-	void setRO_uint32(uint32_t value)
-	{
-		structData_.RO_uint32 = value;
-	}
-	
-	/*!
-	 * \brief Get RO_float32 register.
-	 * \return value.
-	 */
-	float getRO_float32() const
-	{
-		return structData_.RO_float32;
-	}
-
-	/*!
-	 * \brief Set RO_float32 register.
-	 * \param value to be set.
-	 */
-	void setRO_float32(float value)
-	{
-		structData_.RO_float32 = value;
-	}
-	
-	/*!
-	 * \brief Get RO_string register.
-	 * \return value.
-	 */
-	std::string getRO_string() const
-	{
-		size_t len = (size_t)structData_.RO_string[1];
-		return std::string((char*)&(structData_.RO_string[2]), len);
-	}
-
-	/*!
-	 * \brief Set RO_string register.
-	 * \param value to be set.
-	 */
-	void setRO_string(const std::string &value)
-	{
-		size_t len = (value.length() < RO_stringLen_) ? value.length() : RO_stringLen_;
-		memcpy((char*)&(structData_.RO_string[2]), value.c_str(), len);
-		structData_.RO_string[0] = char(0);
-		structData_.RO_string[1] = char(len);
-	}
-	
-	/*!
-	 * \brief Get RO_date register.
-	 * \return value.
-	 */
-	double getRO_date() const
-	{
-		return structData_.RO_date;
-	}
-
-	/*!
-	 * \brief Set RO_date register.
-	 * \param value to be set.
-	 */
-	void setRO_date(double value)
-	{
-		structData_.RO_date = value;
-	}
-	
-	/*!
-	 * \brief Get RO_char register.
-	 * \return value.
-	 */
-	int8_t getRO_char() const
-	{
-		return structData_.RO_char;
-	}
-
-	/*!
-	 * \brief Set RO_char register.
-	 * \param value to be set.
-	 */
-	void setRO_char(int8_t value)
-	{
-		structData_.RO_char = value;
-	}
-	
-	/*!
-	 * \brief Get RO_byte register.
-	 * \return value.
-	 */
-	uint8_t getRO_byte() const
-	{
-		return structData_.RO_byte;
-	}
-
-	/*!
-	 * \brief Set RO_byte register.
-	 * \param value to be set.
-	 */
-	void setRO_byte(uint8_t value)
-	{
-		structData_.RO_byte = value;
-	}
-	
-	/*!
-	 * \brief Get RO_word register.
-	 * \return value.
-	 */
-	uint16_t getRO_word() const
-	{
-		return structData_.RO_word;
-	}
-
-	/*!
-	 * \brief Set RO_word register.
-	 * \param value to be set.
-	 */
-	void setRO_word(uint16_t value)
-	{
-		structData_.RO_word = value;
-	}
-	
-	/*!
-	 * \brief Get RO_dword register.
-	 * \return value.
-	 */
-	uint32_t getRO_dword() const
-	{
-		return structData_.RO_dword;
-	}
-
-	/*!
-	 * \brief Set RO_dword register.
-	 * \param value to be set.
-	 */
-	void setRO_dword(uint32_t value)
-	{
-		structData_.RO_dword = value;
-	}
-	
-	/*!
-	 * \brief Get RO_int register.
-	 * \return value.
-	 */
-	int16_t getRO_int() const
-	{
-		return structData_.RO_int;
-	}
-
-	/*!
-	 * \brief Set RO_int register.
-	 * \param value to be set.
-	 */
-	void setRO_int(int16_t value)
-	{
-		structData_.RO_int = value;
-	}
-	
-	/*!
-	 * \brief Get RO_dint register.
-	 * \return value.
-	 */
-	int32_t getRO_dint() const
-	{
-		return structData_.RO_dint;
-	}
-
-	/*!
-	 * \brief Set RO_dint register.
-	 * \param value to be set.
-	 */
-	void setRO_dint(int32_t value)
-	{
-		structData_.RO_dint = value;
-	}
-	
-	/*!
-	 * \brief Get RO_real register.
-	 * \return value.
-	 */
-	float getRO_real() const
-	{
-		return structData_.RO_real;
-	}
-
-	/*!
-	 * \brief Set RO_real register.
-	 * \param value to be set.
-	 */
-	void setRO_real(float value)
-	{
-		structData_.RO_real = value;
-	}
-	
-	/*!
-	 * \brief Get RO_dt register.
-	 * \return value.
-	 */
-	double getRO_dt() const
-	{
-		return structData_.RO_dt;
-	}
-
-	/*!
-	 * \brief Set RO_dt register.
-	 * \param value to be set.
-	 */
-	void setRO_dt(double value)
-	{
-		structData_.RO_dt = value;
-	}
-
-	virtual inline size_t getSize() const
-	{
-		return sizeof(structData_);
-	}
-
-	virtual void getData(unsigned char * data) const
-	{
-		memcpy(data, &structData_, this->getSize());
-	}
-
-	virtual void setData(unsigned char * data)
-	{
-		memcpy(&structData_, data, this->getSize());
-	}
-
-	virtual inline size_t getOffset() const { return 1; }
-
-	static const std::size_t RO_stringLen_ = 64;
-
-private:
-
-#pragma pack(push, 1)
-    struct
-    {
-		int8_t RO_int8;
-		uint8_t RO_uint8;
-		int16_t RO_int16;
-		uint16_t RO_uint16;
-		int32_t RO_int32;
-		uint32_t RO_uint32;
-		float RO_float32;
-		char RO_string[RO_stringLen_+2];
-		double RO_date;
-		int8_t RO_char;
-		uint8_t RO_byte;
-		uint16_t RO_word;
-		uint32_t RO_dword;
-		int16_t RO_int;
-		int32_t RO_dint;
-		float RO_real;
-		double RO_dt;
-
-    } structData_;
-#pragma pack(pop)
-	
-};
-
-class MyRWBlock : public SilecsServer::Block
-{
-public:
-    /*!
-     * \brief MyRWBlock constructor. It creates an empty block.
-     */
-    MyRWBlock() : SilecsServer::Block("AllTypes:MyRWBlock")
-    {
-    
-    }
-
-    ~MyRWBlock()
-    {
-    }
-    	
-	/*!
-	 * \brief Get array RW_int8 register.
-	 * \return value.
-	 */
-	void getRW_int8(int8_t* value) const
-	{
-		memcpy(value, &structData_.RW_int8, RW_int8Dim1_ * RW_int8Dim2_ * sizeof(int8_t));
-	}
-
-	/*!
-	 * \brief Set array RW_int8 register.
-	 * \param value to be set.
-	 */
-	void setRW_int8(int8_t* value)
-	{
-		memcpy(&structData_.RW_int8, value, RW_int8Dim1_ * RW_int8Dim2_ * sizeof(int8_t));
-	}
-	
-	/*!
-	 * \brief Get array RW_uint8 register.
-	 * \return value.
-	 */
-	void getRW_uint8(uint8_t* value) const
-	{
-		memcpy(value, &structData_.RW_uint8, RW_uint8Dim1_ * RW_uint8Dim2_ * sizeof(uint8_t));
-	}
-
-	/*!
-	 * \brief Set array RW_uint8 register.
-	 * \param value to be set.
-	 */
-	void setRW_uint8(uint8_t* value)
-	{
-		memcpy(&structData_.RW_uint8, value, RW_uint8Dim1_ * RW_uint8Dim2_ * sizeof(uint8_t));
-	}
-	
-	/*!
-	 * \brief Get array RW_int16 register.
-	 * \return value.
-	 */
-	void getRW_int16(int16_t* value) const
-	{
-		memcpy(value, &structData_.RW_int16, RW_int16Dim1_ * RW_int16Dim2_ * sizeof(int16_t));
-	}
-
-	/*!
-	 * \brief Set array RW_int16 register.
-	 * \param value to be set.
-	 */
-	void setRW_int16(int16_t* value)
-	{
-		memcpy(&structData_.RW_int16, value, RW_int16Dim1_ * RW_int16Dim2_ * sizeof(int16_t));
-	}
-	
-	/*!
-	 * \brief Get array RW_uint16 register.
-	 * \return value.
-	 */
-	void getRW_uint16(uint16_t* value) const
-	{
-		memcpy(value, &structData_.RW_uint16, RW_uint16Dim1_ * RW_uint16Dim2_ * sizeof(uint16_t));
-	}
-
-	/*!
-	 * \brief Set array RW_uint16 register.
-	 * \param value to be set.
-	 */
-	void setRW_uint16(uint16_t* value)
-	{
-		memcpy(&structData_.RW_uint16, value, RW_uint16Dim1_ * RW_uint16Dim2_ * sizeof(uint16_t));
-	}
-	
-	/*!
-	 * \brief Get array RW_int32 register.
-	 * \return value.
-	 */
-	void getRW_int32(int32_t* value) const
-	{
-		memcpy(value, &structData_.RW_int32, RW_int32Dim1_ * RW_int32Dim2_ * sizeof(int32_t));
-	}
-
-	/*!
-	 * \brief Set array RW_int32 register.
-	 * \param value to be set.
-	 */
-	void setRW_int32(int32_t* value)
-	{
-		memcpy(&structData_.RW_int32, value, RW_int32Dim1_ * RW_int32Dim2_ * sizeof(int32_t));
-	}
-	
-	/*!
-	 * \brief Get array RW_uint32 register.
-	 * \return value.
-	 */
-	void getRW_uint32(uint32_t* value) const
-	{
-		memcpy(value, &structData_.RW_uint32, RW_uint32Dim1_ * RW_uint32Dim2_ * sizeof(uint32_t));
-	}
-
-	/*!
-	 * \brief Set array RW_uint32 register.
-	 * \param value to be set.
-	 */
-	void setRW_uint32(uint32_t* value)
-	{
-		memcpy(&structData_.RW_uint32, value, RW_uint32Dim1_ * RW_uint32Dim2_ * sizeof(uint32_t));
-	}
-	
-	/*!
-	 * \brief Get array RW_float32 register.
-	 * \return value.
-	 */
-	void getRW_float32(float* value) const
-	{
-		memcpy(value, &structData_.RW_float32, RW_float32Dim1_ * RW_float32Dim2_ * sizeof(float));
-	}
-
-	/*!
-	 * \brief Set array RW_float32 register.
-	 * \param value to be set.
-	 */
-	void setRW_float32(float* value)
-	{
-		memcpy(&structData_.RW_float32, value, RW_float32Dim1_ * RW_float32Dim2_ * sizeof(float));
-	}
-	
-	/*!
-	 * \brief Get std::string RW_string register.
-	 * \param value buffer where the value will be stored.
-	 */
-	void getRW_string(std::string* value) const
-	{
-		for (std::size_t i = 0; i < RW_stringDim1_; i++)
-		{
-			size_t len = (size_t)structData_.RW_string[i][1];
-			value[i].assign(&(structData_.RW_string[i][2]), len);
-		}
-	}
-
-	/*!
-	 * \brief Set std::string RW_string register.
-	 * \param value to be set.
-	 */
-	void setRW_string(std::string* value)
-	{
-	    for (std::size_t i = 0; i < RW_stringDim1_; i++)
-		{
-		    size_t len = (value[i].length() < RW_stringLen_) ? value[i].length() : RW_stringLen_;
-			memcpy(&(structData_.RW_string[i][2]), value[i].c_str(), len);
-			structData_.RW_string[i][0] = char(0);
-			structData_.RW_string[i][1] = char(len);
-		}
-	}
-	
-	/*!
-	 * \brief Get array RW_date register.
-	 * \return value.
-	 */
-	void getRW_date(double* value) const
-	{
-		memcpy(value, &structData_.RW_date, RW_dateDim1_ * RW_dateDim2_ * sizeof(double));
-	}
-
-	/*!
-	 * \brief Set array RW_date register.
-	 * \param value to be set.
-	 */
-	void setRW_date(double* value)
-	{
-		memcpy(&structData_.RW_date, value, RW_dateDim1_ * RW_dateDim2_ * sizeof(double));
-	}
-	
-	/*!
-	 * \brief Get array RW_char register.
-	 * \return value.
-	 */
-	void getRW_char(int8_t* value) const
-	{
-		memcpy(value, &structData_.RW_char, RW_charDim1_ * RW_charDim2_ * sizeof(int8_t));
-	}
-
-	/*!
-	 * \brief Set array RW_char register.
-	 * \param value to be set.
-	 */
-	void setRW_char(int8_t* value)
-	{
-		memcpy(&structData_.RW_char, value, RW_charDim1_ * RW_charDim2_ * sizeof(int8_t));
-	}
-	
-	/*!
-	 * \brief Get array RW_byte register.
-	 * \return value.
-	 */
-	void getRW_byte(uint8_t* value) const
-	{
-		memcpy(value, &structData_.RW_byte, RW_byteDim1_ * RW_byteDim2_ * sizeof(uint8_t));
-	}
-
-	/*!
-	 * \brief Set array RW_byte register.
-	 * \param value to be set.
-	 */
-	void setRW_byte(uint8_t* value)
-	{
-		memcpy(&structData_.RW_byte, value, RW_byteDim1_ * RW_byteDim2_ * sizeof(uint8_t));
-	}
-	
-	/*!
-	 * \brief Get array RW_word register.
-	 * \return value.
-	 */
-	void getRW_word(uint16_t* value) const
-	{
-		memcpy(value, &structData_.RW_word, RW_wordDim1_ * RW_wordDim2_ * sizeof(uint16_t));
-	}
-
-	/*!
-	 * \brief Set array RW_word register.
-	 * \param value to be set.
-	 */
-	void setRW_word(uint16_t* value)
-	{
-		memcpy(&structData_.RW_word, value, RW_wordDim1_ * RW_wordDim2_ * sizeof(uint16_t));
-	}
-	
-	/*!
-	 * \brief Get array RW_dword register.
-	 * \return value.
-	 */
-	void getRW_dword(uint32_t* value) const
-	{
-		memcpy(value, &structData_.RW_dword, RW_dwordDim1_ * RW_dwordDim2_ * sizeof(uint32_t));
-	}
-
-	/*!
-	 * \brief Set array RW_dword register.
-	 * \param value to be set.
-	 */
-	void setRW_dword(uint32_t* value)
-	{
-		memcpy(&structData_.RW_dword, value, RW_dwordDim1_ * RW_dwordDim2_ * sizeof(uint32_t));
-	}
-	
-	/*!
-	 * \brief Get array RW_int register.
-	 * \return value.
-	 */
-	void getRW_int(int16_t* value) const
-	{
-		memcpy(value, &structData_.RW_int, RW_intDim1_ * RW_intDim2_ * sizeof(int16_t));
-	}
-
-	/*!
-	 * \brief Set array RW_int register.
-	 * \param value to be set.
-	 */
-	void setRW_int(int16_t* value)
-	{
-		memcpy(&structData_.RW_int, value, RW_intDim1_ * RW_intDim2_ * sizeof(int16_t));
-	}
-	
-	/*!
-	 * \brief Get array RW_dint register.
-	 * \return value.
-	 */
-	void getRW_dint(int32_t* value) const
-	{
-		memcpy(value, &structData_.RW_dint, RW_dintDim1_ * RW_dintDim2_ * sizeof(int32_t));
-	}
-
-	/*!
-	 * \brief Set array RW_dint register.
-	 * \param value to be set.
-	 */
-	void setRW_dint(int32_t* value)
-	{
-		memcpy(&structData_.RW_dint, value, RW_dintDim1_ * RW_dintDim2_ * sizeof(int32_t));
-	}
-	
-	/*!
-	 * \brief Get array RW_real register.
-	 * \return value.
-	 */
-	void getRW_real(float* value) const
-	{
-		memcpy(value, &structData_.RW_real, RW_realDim1_ * RW_realDim2_ * sizeof(float));
-	}
-
-	/*!
-	 * \brief Set array RW_real register.
-	 * \param value to be set.
-	 */
-	void setRW_real(float* value)
-	{
-		memcpy(&structData_.RW_real, value, RW_realDim1_ * RW_realDim2_ * sizeof(float));
-	}
-	
-	/*!
-	 * \brief Get array RW_dt register.
-	 * \return value.
-	 */
-	void getRW_dt(double* value) const
-	{
-		memcpy(value, &structData_.RW_dt, RW_dtDim1_ * RW_dtDim2_ * sizeof(double));
-	}
-
-	/*!
-	 * \brief Set array RW_dt register.
-	 * \param value to be set.
-	 */
-	void setRW_dt(double* value)
-	{
-		memcpy(&structData_.RW_dt, value, RW_dtDim1_ * RW_dtDim2_ * sizeof(double));
-	}
-
-	virtual inline size_t getSize() const
-	{
-		return sizeof(structData_);
-	}
-
-	virtual void getData(unsigned char * data) const
-	{
-		memcpy(data, &structData_, this->getSize());
-	}
-
-	virtual void setData(unsigned char * data)
-	{
-		memcpy(&structData_, data, this->getSize());
-	}
-
-	virtual inline size_t getOffset() const { return 2; }
-
-	static const std::size_t RW_int8Dim1_ = 2;
-	static const std::size_t RW_int8Dim2_ = 2;
-	static const std::size_t RW_uint8Dim1_ = 2;
-	static const std::size_t RW_uint8Dim2_ = 2;
-	static const std::size_t RW_int16Dim1_ = 2;
-	static const std::size_t RW_int16Dim2_ = 2;
-	static const std::size_t RW_uint16Dim1_ = 2;
-	static const std::size_t RW_uint16Dim2_ = 2;
-	static const std::size_t RW_int32Dim1_ = 2;
-	static const std::size_t RW_int32Dim2_ = 2;
-	static const std::size_t RW_uint32Dim1_ = 2;
-	static const std::size_t RW_uint32Dim2_ = 2;
-	static const std::size_t RW_float32Dim1_ = 2;
-	static const std::size_t RW_float32Dim2_ = 2;
-	static const std::size_t RW_stringDim1_ = 2;
-	static const std::size_t RW_stringDim2_ = 2;
-	static const std::size_t RW_stringLen_ = 64;
-	static const std::size_t RW_dateDim1_ = 2;
-	static const std::size_t RW_dateDim2_ = 2;
-	static const std::size_t RW_charDim1_ = 2;
-	static const std::size_t RW_charDim2_ = 2;
-	static const std::size_t RW_byteDim1_ = 2;
-	static const std::size_t RW_byteDim2_ = 2;
-	static const std::size_t RW_wordDim1_ = 2;
-	static const std::size_t RW_wordDim2_ = 2;
-	static const std::size_t RW_dwordDim1_ = 2;
-	static const std::size_t RW_dwordDim2_ = 2;
-	static const std::size_t RW_intDim1_ = 2;
-	static const std::size_t RW_intDim2_ = 2;
-	static const std::size_t RW_dintDim1_ = 2;
-	static const std::size_t RW_dintDim2_ = 2;
-	static const std::size_t RW_realDim1_ = 2;
-	static const std::size_t RW_realDim2_ = 2;
-	static const std::size_t RW_dtDim1_ = 2;
-	static const std::size_t RW_dtDim2_ = 2;
-
-private:
-
-#pragma pack(push, 1)
-    struct
-    {
-		int8_t RW_int8[RW_int8Dim1_][RW_int8Dim2_];
-		uint8_t RW_uint8[RW_uint8Dim1_][RW_uint8Dim2_];
-		int16_t RW_int16[RW_int16Dim1_][RW_int16Dim2_];
-		uint16_t RW_uint16[RW_uint16Dim1_][RW_uint16Dim2_];
-		int32_t RW_int32[RW_int32Dim1_][RW_int32Dim2_];
-		uint32_t RW_uint32[RW_uint32Dim1_][RW_uint32Dim2_];
-		float RW_float32[RW_float32Dim1_][RW_float32Dim2_];
-		char RW_string[RW_stringDim1_][RW_stringDim2_][RW_stringLen_+2];
-		double RW_date[RW_dateDim1_][RW_dateDim2_];
-		int8_t RW_char[RW_charDim1_][RW_charDim2_];
-		uint8_t RW_byte[RW_byteDim1_][RW_byteDim2_];
-		uint16_t RW_word[RW_wordDim1_][RW_wordDim2_];
-		uint32_t RW_dword[RW_dwordDim1_][RW_dwordDim2_];
-		int16_t RW_int[RW_intDim1_][RW_intDim2_];
-		int32_t RW_dint[RW_dintDim1_][RW_dintDim2_];
-		float RW_real[RW_realDim1_][RW_realDim2_];
-		double RW_dt[RW_dtDim1_][RW_dtDim2_];
-
-    } structData_;
-#pragma pack(pop)
-	
-};
-
-class MyWOBlock : public SilecsServer::Block
-{
-public:
-    /*!
-     * \brief MyWOBlock constructor. It creates an empty block.
-     */
-    MyWOBlock() : SilecsServer::Block("AllTypes:MyWOBlock")
-    {
-    
-    }
-
-    ~MyWOBlock()
-    {
-    }
-    	
-	/*!
-	 * \brief Get array WO_int8 register.
-	 * \return value.
-	 */
-	void getWO_int8(int8_t* value) const
-	{
-		memcpy(value, &structData_.WO_int8, WO_int8Dim1_ * WO_int8Dim2_ * sizeof(int8_t));
-	}
-
-	/*!
-	 * \brief Set array WO_int8 register.
-	 * \param value to be set.
-	 */
-	void setWO_int8(int8_t* value)
-	{
-		memcpy(&structData_.WO_int8, value, WO_int8Dim1_ * WO_int8Dim2_ * sizeof(int8_t));
-	}
-	
-	/*!
-	 * \brief Get array WO_uint8 register.
-	 * \return value.
-	 */
-	void getWO_uint8(uint8_t* value) const
-	{
-		memcpy(value, &structData_.WO_uint8, WO_uint8Dim1_ * WO_uint8Dim2_ * sizeof(uint8_t));
-	}
-
-	/*!
-	 * \brief Set array WO_uint8 register.
-	 * \param value to be set.
-	 */
-	void setWO_uint8(uint8_t* value)
-	{
-		memcpy(&structData_.WO_uint8, value, WO_uint8Dim1_ * WO_uint8Dim2_ * sizeof(uint8_t));
-	}
-	
-	/*!
-	 * \brief Get array WO_int16 register.
-	 * \return value.
-	 */
-	void getWO_int16(int16_t* value) const
-	{
-		memcpy(value, &structData_.WO_int16, WO_int16Dim1_ * WO_int16Dim2_ * sizeof(int16_t));
-	}
-
-	/*!
-	 * \brief Set array WO_int16 register.
-	 * \param value to be set.
-	 */
-	void setWO_int16(int16_t* value)
-	{
-		memcpy(&structData_.WO_int16, value, WO_int16Dim1_ * WO_int16Dim2_ * sizeof(int16_t));
-	}
-	
-	/*!
-	 * \brief Get array WO_uint16 register.
-	 * \return value.
-	 */
-	void getWO_uint16(uint16_t* value) const
-	{
-		memcpy(value, &structData_.WO_uint16, WO_uint16Dim1_ * WO_uint16Dim2_ * sizeof(uint16_t));
-	}
-
-	/*!
-	 * \brief Set array WO_uint16 register.
-	 * \param value to be set.
-	 */
-	void setWO_uint16(uint16_t* value)
-	{
-		memcpy(&structData_.WO_uint16, value, WO_uint16Dim1_ * WO_uint16Dim2_ * sizeof(uint16_t));
-	}
-	
-	/*!
-	 * \brief Get array WO_int32 register.
-	 * \return value.
-	 */
-	void getWO_int32(int32_t* value) const
-	{
-		memcpy(value, &structData_.WO_int32, WO_int32Dim1_ * WO_int32Dim2_ * sizeof(int32_t));
-	}
-
-	/*!
-	 * \brief Set array WO_int32 register.
-	 * \param value to be set.
-	 */
-	void setWO_int32(int32_t* value)
-	{
-		memcpy(&structData_.WO_int32, value, WO_int32Dim1_ * WO_int32Dim2_ * sizeof(int32_t));
-	}
-	
-	/*!
-	 * \brief Get array WO_uint32 register.
-	 * \return value.
-	 */
-	void getWO_uint32(uint32_t* value) const
-	{
-		memcpy(value, &structData_.WO_uint32, WO_uint32Dim1_ * WO_uint32Dim2_ * sizeof(uint32_t));
-	}
-
-	/*!
-	 * \brief Set array WO_uint32 register.
-	 * \param value to be set.
-	 */
-	void setWO_uint32(uint32_t* value)
-	{
-		memcpy(&structData_.WO_uint32, value, WO_uint32Dim1_ * WO_uint32Dim2_ * sizeof(uint32_t));
-	}
-	
-	/*!
-	 * \brief Get array WO_float32 register.
-	 * \return value.
-	 */
-	void getWO_float32(float* value) const
-	{
-		memcpy(value, &structData_.WO_float32, WO_float32Dim1_ * WO_float32Dim2_ * sizeof(float));
-	}
-
-	/*!
-	 * \brief Set array WO_float32 register.
-	 * \param value to be set.
-	 */
-	void setWO_float32(float* value)
-	{
-		memcpy(&structData_.WO_float32, value, WO_float32Dim1_ * WO_float32Dim2_ * sizeof(float));
-	}
-	
-	/*!
-	 * \brief Get std::string WO_string register.
-	 * \param value buffer where the value will be stored.
-	 */
-	void getWO_string(std::string* value) const
-	{
-		for (std::size_t i = 0; i < WO_stringDim1_; i++)
-		{
-			size_t len = (size_t)structData_.WO_string[i][1];
-			value[i].assign(&(structData_.WO_string[i][2]), len);
-		}
-	}
-
-	/*!
-	 * \brief Set std::string WO_string register.
-	 * \param value to be set.
-	 */
-	void setWO_string(std::string* value)
-	{
-	    for (std::size_t i = 0; i < WO_stringDim1_; i++)
-		{
-		    size_t len = (value[i].length() < WO_stringLen_) ? value[i].length() : WO_stringLen_;
-			memcpy(&(structData_.WO_string[i][2]), value[i].c_str(), len);
-			structData_.WO_string[i][0] = char(0);
-			structData_.WO_string[i][1] = char(len);
-		}
-	}
-	
-	/*!
-	 * \brief Get array WO_date register.
-	 * \return value.
-	 */
-	void getWO_date(double* value) const
-	{
-		memcpy(value, &structData_.WO_date, WO_dateDim1_ * WO_dateDim2_ * sizeof(double));
-	}
-
-	/*!
-	 * \brief Set array WO_date register.
-	 * \param value to be set.
-	 */
-	void setWO_date(double* value)
-	{
-		memcpy(&structData_.WO_date, value, WO_dateDim1_ * WO_dateDim2_ * sizeof(double));
-	}
-	
-	/*!
-	 * \brief Get array WO_char register.
-	 * \return value.
-	 */
-	void getWO_char(int8_t* value) const
-	{
-		memcpy(value, &structData_.WO_char, WO_charDim1_ * WO_charDim2_ * sizeof(int8_t));
-	}
-
-	/*!
-	 * \brief Set array WO_char register.
-	 * \param value to be set.
-	 */
-	void setWO_char(int8_t* value)
-	{
-		memcpy(&structData_.WO_char, value, WO_charDim1_ * WO_charDim2_ * sizeof(int8_t));
-	}
-	
-	/*!
-	 * \brief Get array WO_byte register.
-	 * \return value.
-	 */
-	void getWO_byte(uint8_t* value) const
-	{
-		memcpy(value, &structData_.WO_byte, WO_byteDim1_ * WO_byteDim2_ * sizeof(uint8_t));
-	}
-
-	/*!
-	 * \brief Set array WO_byte register.
-	 * \param value to be set.
-	 */
-	void setWO_byte(uint8_t* value)
-	{
-		memcpy(&structData_.WO_byte, value, WO_byteDim1_ * WO_byteDim2_ * sizeof(uint8_t));
-	}
-	
-	/*!
-	 * \brief Get array WO_word register.
-	 * \return value.
-	 */
-	void getWO_word(uint16_t* value) const
-	{
-		memcpy(value, &structData_.WO_word, WO_wordDim1_ * WO_wordDim2_ * sizeof(uint16_t));
-	}
-
-	/*!
-	 * \brief Set array WO_word register.
-	 * \param value to be set.
-	 */
-	void setWO_word(uint16_t* value)
-	{
-		memcpy(&structData_.WO_word, value, WO_wordDim1_ * WO_wordDim2_ * sizeof(uint16_t));
-	}
-	
-	/*!
-	 * \brief Get array WO_dword register.
-	 * \return value.
-	 */
-	void getWO_dword(uint32_t* value) const
-	{
-		memcpy(value, &structData_.WO_dword, WO_dwordDim1_ * WO_dwordDim2_ * sizeof(uint32_t));
-	}
-
-	/*!
-	 * \brief Set array WO_dword register.
-	 * \param value to be set.
-	 */
-	void setWO_dword(uint32_t* value)
-	{
-		memcpy(&structData_.WO_dword, value, WO_dwordDim1_ * WO_dwordDim2_ * sizeof(uint32_t));
-	}
-	
-	/*!
-	 * \brief Get array WO_int register.
-	 * \return value.
-	 */
-	void getWO_int(int16_t* value) const
-	{
-		memcpy(value, &structData_.WO_int, WO_intDim1_ * WO_intDim2_ * sizeof(int16_t));
-	}
-
-	/*!
-	 * \brief Set array WO_int register.
-	 * \param value to be set.
-	 */
-	void setWO_int(int16_t* value)
-	{
-		memcpy(&structData_.WO_int, value, WO_intDim1_ * WO_intDim2_ * sizeof(int16_t));
-	}
-	
-	/*!
-	 * \brief Get array WO_dint register.
-	 * \return value.
-	 */
-	void getWO_dint(int32_t* value) const
-	{
-		memcpy(value, &structData_.WO_dint, WO_dintDim1_ * WO_dintDim2_ * sizeof(int32_t));
-	}
-
-	/*!
-	 * \brief Set array WO_dint register.
-	 * \param value to be set.
-	 */
-	void setWO_dint(int32_t* value)
-	{
-		memcpy(&structData_.WO_dint, value, WO_dintDim1_ * WO_dintDim2_ * sizeof(int32_t));
-	}
-	
-	/*!
-	 * \brief Get array WO_real register.
-	 * \return value.
-	 */
-	void getWO_real(float* value) const
-	{
-		memcpy(value, &structData_.WO_real, WO_realDim1_ * WO_realDim2_ * sizeof(float));
-	}
-
-	/*!
-	 * \brief Set array WO_real register.
-	 * \param value to be set.
-	 */
-	void setWO_real(float* value)
-	{
-		memcpy(&structData_.WO_real, value, WO_realDim1_ * WO_realDim2_ * sizeof(float));
-	}
-	
-	/*!
-	 * \brief Get array WO_dt register.
-	 * \return value.
-	 */
-	void getWO_dt(double* value) const
-	{
-		memcpy(value, &structData_.WO_dt, WO_dtDim1_ * WO_dtDim2_ * sizeof(double));
-	}
-
-	/*!
-	 * \brief Set array WO_dt register.
-	 * \param value to be set.
-	 */
-	void setWO_dt(double* value)
-	{
-		memcpy(&structData_.WO_dt, value, WO_dtDim1_ * WO_dtDim2_ * sizeof(double));
-	}
-
-	virtual inline size_t getSize() const
-	{
-		return sizeof(structData_);
-	}
-
-	virtual void getData(unsigned char * data) const
-	{
-		memcpy(data, &structData_, this->getSize());
-	}
-
-	virtual void setData(unsigned char * data)
-	{
-		memcpy(&structData_, data, this->getSize());
-	}
-
-	virtual inline size_t getOffset() const { return 3; }
-
-	static const std::size_t WO_int8Dim1_ = 10;
-	static const std::size_t WO_int8Dim2_ = 1;
-	static const std::size_t WO_uint8Dim1_ = 10;
-	static const std::size_t WO_uint8Dim2_ = 1;
-	static const std::size_t WO_int16Dim1_ = 10;
-	static const std::size_t WO_int16Dim2_ = 1;
-	static const std::size_t WO_uint16Dim1_ = 10;
-	static const std::size_t WO_uint16Dim2_ = 1;
-	static const std::size_t WO_int32Dim1_ = 10;
-	static const std::size_t WO_int32Dim2_ = 1;
-	static const std::size_t WO_uint32Dim1_ = 10;
-	static const std::size_t WO_uint32Dim2_ = 1;
-	static const std::size_t WO_float32Dim1_ = 10;
-	static const std::size_t WO_float32Dim2_ = 1;
-	static const std::size_t WO_stringDim1_ = 10;
-	static const std::size_t WO_stringDim2_ = 1;
-	static const std::size_t WO_stringLen_ = 64;
-	static const std::size_t WO_dateDim1_ = 10;
-	static const std::size_t WO_dateDim2_ = 1;
-	static const std::size_t WO_charDim1_ = 10;
-	static const std::size_t WO_charDim2_ = 1;
-	static const std::size_t WO_byteDim1_ = 10;
-	static const std::size_t WO_byteDim2_ = 1;
-	static const std::size_t WO_wordDim1_ = 10;
-	static const std::size_t WO_wordDim2_ = 1;
-	static const std::size_t WO_dwordDim1_ = 10;
-	static const std::size_t WO_dwordDim2_ = 1;
-	static const std::size_t WO_intDim1_ = 10;
-	static const std::size_t WO_intDim2_ = 1;
-	static const std::size_t WO_dintDim1_ = 10;
-	static const std::size_t WO_dintDim2_ = 1;
-	static const std::size_t WO_realDim1_ = 10;
-	static const std::size_t WO_realDim2_ = 1;
-	static const std::size_t WO_dtDim1_ = 10;
-	static const std::size_t WO_dtDim2_ = 1;
-
-private:
-
-#pragma pack(push, 1)
-    struct
-    {
-		int8_t WO_int8[WO_int8Dim1_];
-		uint8_t WO_uint8[WO_uint8Dim1_];
-		int16_t WO_int16[WO_int16Dim1_];
-		uint16_t WO_uint16[WO_uint16Dim1_];
-		int32_t WO_int32[WO_int32Dim1_];
-		uint32_t WO_uint32[WO_uint32Dim1_];
-		float WO_float32[WO_float32Dim1_];
-		char WO_string[WO_stringDim1_][WO_stringLen_+2];
-		double WO_date[WO_dateDim1_];
-		int8_t WO_char[WO_charDim1_];
-		uint8_t WO_byte[WO_byteDim1_];
-		uint16_t WO_word[WO_wordDim1_];
-		uint32_t WO_dword[WO_dwordDim1_];
-		int16_t WO_int[WO_intDim1_];
-		int32_t WO_dint[WO_dintDim1_];
-		float WO_real[WO_realDim1_];
-		double WO_dt[WO_dtDim1_];
-
-    } structData_;
-#pragma pack(pop)
-	
-};
-
-
-
-class Device : public SilecsServer::Device
-{
-public:
-    Device(const std::string& label, size_t number):SilecsServer::Device(label, number)
-    {	
-		blockMap_["AllTypes:MyROBlock"] = new MyROBlock();
-		blockMap_["AllTypes:MyRWBlock"] = new MyRWBlock();
-		blockMap_["AllTypes:MyWOBlock"] = new MyWOBlock();    
-    }
-
-    ~Device()
-    {    
-		delete (blockMap_["AllTypes:MyROBlock"]);
-		delete (blockMap_["AllTypes:MyRWBlock"]);
-		delete (blockMap_["AllTypes:MyWOBlock"]);    
-    }
-};
-
-
-class Design : public SilecsServer::Design
-{
-public:
-
-    Design():SilecsServer::Design("AllTypes", "0.1.0")
-    {    
-		deviceMap_["AllTypes:testDevice1"] = new Device("AllTypes:testDevice1", 0);
-		deviceMap_["AllTypes:testDevice2"] = new Device("AllTypes:testDevice2", 1);    
-    }
-
-    ~Design()
-    {    
-		delete(deviceMap_["AllTypes:testDevice1"]);
-		delete(deviceMap_["AllTypes:testDevice2"]);    
-    }
-
-    /*!
-     * \brief Return pointer to the requested device.
-     * \param label Device label.
-     */
-    AllTypes_0_1_0::Device* getDevice(const std::string& label)
-    {
-        if (deviceMap_.find(label) != deviceMap_.end())
-        {
-            return dynamic_cast<AllTypes_0_1_0::Device*>(deviceMap_[label]);
-        }
-        return NULL;
-    }
-};
-
-} /* namespace */
-#endif
diff --git a/silecs-codegen/src/xml/test/generated_temp/controller/Virtual_SiemensBlock.SilecsHeader.h b/silecs-codegen/src/xml/test/generated_temp/controller/Virtual_SiemensBlock.SilecsHeader.h
deleted file mode 100644
index 85ecca60a14438414a6e1df5a886a88b03802650..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/controller/Virtual_SiemensBlock.SilecsHeader.h
+++ /dev/null
@@ -1,203 +0,0 @@
-
-/* Copyright CERN 2015
- *
- * WARNING: This code is automatically generated from your SILECS deploy unit document.
- * You should never modify the content of this file as it would break consistency.
- * Furthermore, any changes will be overwritten in the next code generation.
- * Any modification shall be done using the SILECS development environment
- * and regenerating this source code.
- */
-
-#ifndef SILECSHEADER_1_0_0_H_
-#define SILECSHEADER_1_0_0_H_
-
-#include <silecs-virtual-controller/interface/Block.h>
-#include <silecs-virtual-controller/interface/DeployUnit.h>
-#include <silecs-virtual-controller/interface/Design.h>
-#include <silecs-virtual-controller/interface/Device.h>
-
-namespace SilecsHeader_1_0_0
-{
-
-class Design;
-
-class HdrBlk : public SilecsServer::Block
-{
-public:
-    /*!
-     * \brief hdrBlk constructor. It creates an empty block.
-     */
-    HdrBlk() : SilecsServer::Block("SilecsHeader:hdrBlk")
-    {
-    	set_version("DEV");
-		set_checksum(0X2110E2EA);
-		set_user("schwinn");
-		set_date(0.0);
-    }
-
-    ~HdrBlk()
-    {
-    }
-    	
-	/*!
-	 * \brief Get _version register.
-	 * \return value.
-	 */
-	std::string get_version() const
-	{
-		size_t len = (size_t)structData_._version[1];
-		return std::string((char*)&(structData_._version[2]), len);
-	}
-
-	/*!
-	 * \brief Set _version register.
-	 * \param value to be set.
-	 */
-	void set_version(const std::string &value)
-	{
-		size_t len = (value.length() < _versionLen_) ? value.length() : _versionLen_;
-		memcpy((char*)&(structData_._version[2]), value.c_str(), len);
-		structData_._version[0] = char(0);
-		structData_._version[1] = char(len);
-	}
-	
-	/*!
-	 * \brief Get _checksum register.
-	 * \return value.
-	 */
-	uint32_t get_checksum() const
-	{
-		return structData_._checksum;
-	}
-
-	/*!
-	 * \brief Set _checksum register.
-	 * \param value to be set.
-	 */
-	void set_checksum(uint32_t value)
-	{
-		structData_._checksum = value;
-	}
-	
-	/*!
-	 * \brief Get _user register.
-	 * \return value.
-	 */
-	std::string get_user() const
-	{
-		size_t len = (size_t)structData_._user[1];
-		return std::string((char*)&(structData_._user[2]), len);
-	}
-
-	/*!
-	 * \brief Set _user register.
-	 * \param value to be set.
-	 */
-	void set_user(const std::string &value)
-	{
-		size_t len = (value.length() < _userLen_) ? value.length() : _userLen_;
-		memcpy((char*)&(structData_._user[2]), value.c_str(), len);
-		structData_._user[0] = char(0);
-		structData_._user[1] = char(len);
-	}
-	
-	/*!
-	 * \brief Get _date register.
-	 * \return value.
-	 */
-	double get_date() const
-	{
-		return structData_._date;
-	}
-
-	/*!
-	 * \brief Set _date register.
-	 * \param value to be set.
-	 */
-	void set_date(double value)
-	{
-		structData_._date = value;
-	}
-
-	virtual inline size_t getSize() const
-	{
-		return sizeof(structData_);
-	}
-
-	virtual void getData(unsigned char * data) const
-	{
-		memcpy(data, &structData_, this->getSize());
-	}
-
-	virtual void setData(unsigned char * data)
-	{
-		memcpy(&structData_, data, this->getSize());
-	}
-
-	virtual inline size_t getOffset() const { return 0; }
-
-	static const std::size_t _versionLen_ = 16;
-	static const std::size_t _userLen_ = 16;
-
-private:
-
-#pragma pack(push, 1)
-    struct
-    {
-		char _version[_versionLen_+2];
-		uint32_t _checksum;
-		char _user[_userLen_+2];
-		double _date;
-
-    } structData_;
-#pragma pack(pop)
-	
-};
-
-
-
-class Device : public SilecsServer::Device
-{
-public:
-    Device(const std::string& label, size_t number):SilecsServer::Device(label, number)
-    {	
-		blockMap_["SilecsHeader:hdrBlk"] = new HdrBlk();    
-    }
-
-    ~Device()
-    {    
-		delete (blockMap_["SilecsHeader:hdrBlk"]);    
-    }
-};
-
-
-class Design : public SilecsServer::Design
-{
-public:
-
-    Design():SilecsServer::Design("SilecsHeader", "1.0.0")
-    {    
-		deviceMap_["SilecsHeader:SilecsHeader"] = new Device("SilecsHeader:SilecsHeader", 0);    
-    }
-
-    ~Design()
-    {    
-		delete(deviceMap_["SilecsHeader:SilecsHeader"]);    
-    }
-
-    /*!
-     * \brief Return pointer to the requested device.
-     * \param label Device label.
-     */
-    SilecsHeader_1_0_0::Device* getDevice(const std::string& label)
-    {
-        if (deviceMap_.find(label) != deviceMap_.end())
-        {
-            return dynamic_cast<SilecsHeader_1_0_0::Device*>(deviceMap_[label]);
-        }
-        return NULL;
-    }
-};
-
-} /* namespace */
-#endif
diff --git a/silecs-codegen/src/xml/test/generated_temp/controller/Virtual_SiemensBlock.cpp b/silecs-codegen/src/xml/test/generated_temp/controller/Virtual_SiemensBlock.cpp
deleted file mode 100644
index d7e2a30372df7923ad5c8667bbdf45c9d043942e..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/controller/Virtual_SiemensBlock.cpp
+++ /dev/null
@@ -1,33 +0,0 @@
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <cstring>
-#include <iostream>
-
-#include <silecs-virtual-controller/core/SilecsSnap7Server.h>
-#include "Virtual_SiemensBlock.h"
-
-class UserSnap7Server : public SilecsServer::SilecsSnap7Server
-{
-public:
-    UserSnap7Server(Virtual_SiemensBlock::DeployUnit* du) : SilecsSnap7Server(du, true) {}
-    virtual ~UserSnap7Server() {}
-
-    virtual void userFunction()
-    {
-      // Implement the specific process control here!
-      // Look at SILECS Wikis: 'Create a virtual controller' chapter 
-    }
-};
-
-int main(int argc, char*argv[])
-{
-    Virtual_SiemensBlock::DeployUnit du;
-    UserSnap7Server server(&du);
-    if (server.startServer() < 0)
-    {
-        std::cout << "Failed to start the VC server: " << du.getName() << std::endl;
-        return -1;
-    }
-    return 0;
-}
diff --git a/silecs-codegen/src/xml/test/generated_temp/controller/Virtual_SiemensBlock.h b/silecs-codegen/src/xml/test/generated_temp/controller/Virtual_SiemensBlock.h
deleted file mode 100644
index 819405bef1b250069e55be5edebff102efa37f28..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/controller/Virtual_SiemensBlock.h
+++ /dev/null
@@ -1,53 +0,0 @@
-
-/* Copyright CERN 2015
- *
- * WARNING: This code is automatically generated from your SILECS deploy unit document.
- * You should never modify the content of this file as it would break consistency.
- * Furthermore, any changes will be overwritten in the next code generation.
- * Any modification shall be done using the SILECS development environment
- * and regenerating this source code.
- */
-
-#ifndef VIRTUAL_SIEMENSBLOCK_H_
-#define VIRTUAL_SIEMENSBLOCK_H_
-
-#include <silecs-virtual-controller/interface/DeployUnit.h>
-#include <silecs-virtual-controller/interface/Design.h>
-#include "SilecsHeader_1.0.0.h"
-#include "AllTypes_0.1.0.h"
-
-
-namespace Virtual_SiemensBlock
-{
-
-class DeployUnit : public SilecsServer::DeployUnit
-{
-public:
-
-	DeployUnit() : SilecsServer::DeployUnit("Virtual_SiemensBlock", SilecsServer::S7Protocol, SilecsServer::BlockMode, 0)
-	{
-    	mapDesigns_["SilecsHeader"] = new SilecsHeader_1_0_0::Design();
-	mapDesigns_["AllTypes"] = new AllTypes_0_1_0::Design();
-	}
-
-    ~DeployUnit()
-    {
-    	delete mapDesigns_["SilecsHeader"];
-	delete mapDesigns_["AllTypes"];
-	}
-
-	SilecsHeader_1_0_0::Design* getSilecsHeader()
-	{
-		return dynamic_cast<SilecsHeader_1_0_0::Design*>(mapDesigns_["SilecsHeader"]);
-	}
-	
-	AllTypes_0_1_0::Design* getAllTypes()
-	{
-		return dynamic_cast<AllTypes_0_1_0::Design*>(mapDesigns_["AllTypes"]);
-	}
-	
-};
-
-}
-
-#endif
diff --git a/silecs-codegen/src/xml/test/generated_temp/controller/Virtual_SiemensDevice.AllTypes.h b/silecs-codegen/src/xml/test/generated_temp/controller/Virtual_SiemensDevice.AllTypes.h
deleted file mode 100644
index 3883554cce81e731ece7cea9a4b17f7aacad908f..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/controller/Virtual_SiemensDevice.AllTypes.h
+++ /dev/null
@@ -1,1272 +0,0 @@
-
-/* Copyright CERN 2015
- *
- * WARNING: This code is automatically generated from your SILECS deploy unit document.
- * You should never modify the content of this file as it would break consistency.
- * Furthermore, any changes will be overwritten in the next code generation.
- * Any modification shall be done using the SILECS development environment
- * and regenerating this source code.
- */
-
-#ifndef ALLTYPES_0_1_0_H_
-#define ALLTYPES_0_1_0_H_
-
-#include <silecs-virtual-controller/interface/Block.h>
-#include <silecs-virtual-controller/interface/DeployUnit.h>
-#include <silecs-virtual-controller/interface/Design.h>
-#include <silecs-virtual-controller/interface/Device.h>
-
-namespace AllTypes_0_1_0
-{
-
-class Design;
-
-class MyROBlock : public SilecsServer::Block
-{
-public:
-    /*!
-     * \brief MyROBlock constructor. It creates an empty block.
-     */
-    MyROBlock() : SilecsServer::Block("AllTypes:MyROBlock")
-    {
-    
-    }
-
-    ~MyROBlock()
-    {
-    }
-    	
-	/*!
-	 * \brief Get RO_int8 register.
-	 * \return value.
-	 */
-	int8_t getRO_int8() const
-	{
-		return structData_.RO_int8;
-	}
-
-	/*!
-	 * \brief Set RO_int8 register.
-	 * \param value to be set.
-	 */
-	void setRO_int8(int8_t value)
-	{
-		structData_.RO_int8 = value;
-	}
-	
-	/*!
-	 * \brief Get RO_uint8 register.
-	 * \return value.
-	 */
-	uint8_t getRO_uint8() const
-	{
-		return structData_.RO_uint8;
-	}
-
-	/*!
-	 * \brief Set RO_uint8 register.
-	 * \param value to be set.
-	 */
-	void setRO_uint8(uint8_t value)
-	{
-		structData_.RO_uint8 = value;
-	}
-	
-	/*!
-	 * \brief Get RO_int16 register.
-	 * \return value.
-	 */
-	int16_t getRO_int16() const
-	{
-		return structData_.RO_int16;
-	}
-
-	/*!
-	 * \brief Set RO_int16 register.
-	 * \param value to be set.
-	 */
-	void setRO_int16(int16_t value)
-	{
-		structData_.RO_int16 = value;
-	}
-	
-	/*!
-	 * \brief Get RO_uint16 register.
-	 * \return value.
-	 */
-	uint16_t getRO_uint16() const
-	{
-		return structData_.RO_uint16;
-	}
-
-	/*!
-	 * \brief Set RO_uint16 register.
-	 * \param value to be set.
-	 */
-	void setRO_uint16(uint16_t value)
-	{
-		structData_.RO_uint16 = value;
-	}
-	
-	/*!
-	 * \brief Get RO_int32 register.
-	 * \return value.
-	 */
-	int32_t getRO_int32() const
-	{
-		return structData_.RO_int32;
-	}
-
-	/*!
-	 * \brief Set RO_int32 register.
-	 * \param value to be set.
-	 */
-	void setRO_int32(int32_t value)
-	{
-		structData_.RO_int32 = value;
-	}
-	
-	/*!
-	 * \brief Get RO_uint32 register.
-	 * \return value.
-	 */
-	uint32_t getRO_uint32() const
-	{
-		return structData_.RO_uint32;
-	}
-
-	/*!
-	 * \brief Set RO_uint32 register.
-	 * \param value to be set.
-	 */
-	void setRO_uint32(uint32_t value)
-	{
-		structData_.RO_uint32 = value;
-	}
-	
-	/*!
-	 * \brief Get RO_float32 register.
-	 * \return value.
-	 */
-	float getRO_float32() const
-	{
-		return structData_.RO_float32;
-	}
-
-	/*!
-	 * \brief Set RO_float32 register.
-	 * \param value to be set.
-	 */
-	void setRO_float32(float value)
-	{
-		structData_.RO_float32 = value;
-	}
-	
-	/*!
-	 * \brief Get RO_string register.
-	 * \return value.
-	 */
-	std::string getRO_string() const
-	{
-		size_t len = (size_t)structData_.RO_string[1];
-		return std::string((char*)&(structData_.RO_string[2]), len);
-	}
-
-	/*!
-	 * \brief Set RO_string register.
-	 * \param value to be set.
-	 */
-	void setRO_string(const std::string &value)
-	{
-		size_t len = (value.length() < RO_stringLen_) ? value.length() : RO_stringLen_;
-		memcpy((char*)&(structData_.RO_string[2]), value.c_str(), len);
-		structData_.RO_string[0] = char(0);
-		structData_.RO_string[1] = char(len);
-	}
-	
-	/*!
-	 * \brief Get RO_date register.
-	 * \return value.
-	 */
-	double getRO_date() const
-	{
-		return structData_.RO_date;
-	}
-
-	/*!
-	 * \brief Set RO_date register.
-	 * \param value to be set.
-	 */
-	void setRO_date(double value)
-	{
-		structData_.RO_date = value;
-	}
-	
-	/*!
-	 * \brief Get RO_char register.
-	 * \return value.
-	 */
-	int8_t getRO_char() const
-	{
-		return structData_.RO_char;
-	}
-
-	/*!
-	 * \brief Set RO_char register.
-	 * \param value to be set.
-	 */
-	void setRO_char(int8_t value)
-	{
-		structData_.RO_char = value;
-	}
-	
-	/*!
-	 * \brief Get RO_byte register.
-	 * \return value.
-	 */
-	uint8_t getRO_byte() const
-	{
-		return structData_.RO_byte;
-	}
-
-	/*!
-	 * \brief Set RO_byte register.
-	 * \param value to be set.
-	 */
-	void setRO_byte(uint8_t value)
-	{
-		structData_.RO_byte = value;
-	}
-	
-	/*!
-	 * \brief Get RO_word register.
-	 * \return value.
-	 */
-	uint16_t getRO_word() const
-	{
-		return structData_.RO_word;
-	}
-
-	/*!
-	 * \brief Set RO_word register.
-	 * \param value to be set.
-	 */
-	void setRO_word(uint16_t value)
-	{
-		structData_.RO_word = value;
-	}
-	
-	/*!
-	 * \brief Get RO_dword register.
-	 * \return value.
-	 */
-	uint32_t getRO_dword() const
-	{
-		return structData_.RO_dword;
-	}
-
-	/*!
-	 * \brief Set RO_dword register.
-	 * \param value to be set.
-	 */
-	void setRO_dword(uint32_t value)
-	{
-		structData_.RO_dword = value;
-	}
-	
-	/*!
-	 * \brief Get RO_int register.
-	 * \return value.
-	 */
-	int16_t getRO_int() const
-	{
-		return structData_.RO_int;
-	}
-
-	/*!
-	 * \brief Set RO_int register.
-	 * \param value to be set.
-	 */
-	void setRO_int(int16_t value)
-	{
-		structData_.RO_int = value;
-	}
-	
-	/*!
-	 * \brief Get RO_dint register.
-	 * \return value.
-	 */
-	int32_t getRO_dint() const
-	{
-		return structData_.RO_dint;
-	}
-
-	/*!
-	 * \brief Set RO_dint register.
-	 * \param value to be set.
-	 */
-	void setRO_dint(int32_t value)
-	{
-		structData_.RO_dint = value;
-	}
-	
-	/*!
-	 * \brief Get RO_real register.
-	 * \return value.
-	 */
-	float getRO_real() const
-	{
-		return structData_.RO_real;
-	}
-
-	/*!
-	 * \brief Set RO_real register.
-	 * \param value to be set.
-	 */
-	void setRO_real(float value)
-	{
-		structData_.RO_real = value;
-	}
-	
-	/*!
-	 * \brief Get RO_dt register.
-	 * \return value.
-	 */
-	double getRO_dt() const
-	{
-		return structData_.RO_dt;
-	}
-
-	/*!
-	 * \brief Set RO_dt register.
-	 * \param value to be set.
-	 */
-	void setRO_dt(double value)
-	{
-		structData_.RO_dt = value;
-	}
-
-	virtual inline size_t getSize() const
-	{
-		return sizeof(structData_);
-	}
-
-	virtual void getData(unsigned char * data) const
-	{
-		memcpy(data, &structData_, this->getSize());
-	}
-
-	virtual void setData(unsigned char * data)
-	{
-		memcpy(&structData_, data, this->getSize());
-	}
-
-	virtual inline size_t getOffset() const { return 0; }
-
-	static const std::size_t RO_stringLen_ = 64;
-
-private:
-
-#pragma pack(push, 1)
-    struct
-    {
-		int8_t RO_int8;
-		uint8_t RO_uint8;
-		int16_t RO_int16;
-		uint16_t RO_uint16;
-		int32_t RO_int32;
-		uint32_t RO_uint32;
-		float RO_float32;
-		char RO_string[RO_stringLen_+2];
-		double RO_date;
-		int8_t RO_char;
-		uint8_t RO_byte;
-		uint16_t RO_word;
-		uint32_t RO_dword;
-		int16_t RO_int;
-		int32_t RO_dint;
-		float RO_real;
-		double RO_dt;
-
-    } structData_;
-#pragma pack(pop)
-	
-};
-
-class MyRWBlock : public SilecsServer::Block
-{
-public:
-    /*!
-     * \brief MyRWBlock constructor. It creates an empty block.
-     */
-    MyRWBlock() : SilecsServer::Block("AllTypes:MyRWBlock")
-    {
-    
-    }
-
-    ~MyRWBlock()
-    {
-    }
-    	
-	/*!
-	 * \brief Get array RW_int8 register.
-	 * \return value.
-	 */
-	void getRW_int8(int8_t* value) const
-	{
-		memcpy(value, &structData_.RW_int8, RW_int8Dim1_ * RW_int8Dim2_ * sizeof(int8_t));
-	}
-
-	/*!
-	 * \brief Set array RW_int8 register.
-	 * \param value to be set.
-	 */
-	void setRW_int8(int8_t* value)
-	{
-		memcpy(&structData_.RW_int8, value, RW_int8Dim1_ * RW_int8Dim2_ * sizeof(int8_t));
-	}
-	
-	/*!
-	 * \brief Get array RW_uint8 register.
-	 * \return value.
-	 */
-	void getRW_uint8(uint8_t* value) const
-	{
-		memcpy(value, &structData_.RW_uint8, RW_uint8Dim1_ * RW_uint8Dim2_ * sizeof(uint8_t));
-	}
-
-	/*!
-	 * \brief Set array RW_uint8 register.
-	 * \param value to be set.
-	 */
-	void setRW_uint8(uint8_t* value)
-	{
-		memcpy(&structData_.RW_uint8, value, RW_uint8Dim1_ * RW_uint8Dim2_ * sizeof(uint8_t));
-	}
-	
-	/*!
-	 * \brief Get array RW_int16 register.
-	 * \return value.
-	 */
-	void getRW_int16(int16_t* value) const
-	{
-		memcpy(value, &structData_.RW_int16, RW_int16Dim1_ * RW_int16Dim2_ * sizeof(int16_t));
-	}
-
-	/*!
-	 * \brief Set array RW_int16 register.
-	 * \param value to be set.
-	 */
-	void setRW_int16(int16_t* value)
-	{
-		memcpy(&structData_.RW_int16, value, RW_int16Dim1_ * RW_int16Dim2_ * sizeof(int16_t));
-	}
-	
-	/*!
-	 * \brief Get array RW_uint16 register.
-	 * \return value.
-	 */
-	void getRW_uint16(uint16_t* value) const
-	{
-		memcpy(value, &structData_.RW_uint16, RW_uint16Dim1_ * RW_uint16Dim2_ * sizeof(uint16_t));
-	}
-
-	/*!
-	 * \brief Set array RW_uint16 register.
-	 * \param value to be set.
-	 */
-	void setRW_uint16(uint16_t* value)
-	{
-		memcpy(&structData_.RW_uint16, value, RW_uint16Dim1_ * RW_uint16Dim2_ * sizeof(uint16_t));
-	}
-	
-	/*!
-	 * \brief Get array RW_int32 register.
-	 * \return value.
-	 */
-	void getRW_int32(int32_t* value) const
-	{
-		memcpy(value, &structData_.RW_int32, RW_int32Dim1_ * RW_int32Dim2_ * sizeof(int32_t));
-	}
-
-	/*!
-	 * \brief Set array RW_int32 register.
-	 * \param value to be set.
-	 */
-	void setRW_int32(int32_t* value)
-	{
-		memcpy(&structData_.RW_int32, value, RW_int32Dim1_ * RW_int32Dim2_ * sizeof(int32_t));
-	}
-	
-	/*!
-	 * \brief Get array RW_uint32 register.
-	 * \return value.
-	 */
-	void getRW_uint32(uint32_t* value) const
-	{
-		memcpy(value, &structData_.RW_uint32, RW_uint32Dim1_ * RW_uint32Dim2_ * sizeof(uint32_t));
-	}
-
-	/*!
-	 * \brief Set array RW_uint32 register.
-	 * \param value to be set.
-	 */
-	void setRW_uint32(uint32_t* value)
-	{
-		memcpy(&structData_.RW_uint32, value, RW_uint32Dim1_ * RW_uint32Dim2_ * sizeof(uint32_t));
-	}
-	
-	/*!
-	 * \brief Get array RW_float32 register.
-	 * \return value.
-	 */
-	void getRW_float32(float* value) const
-	{
-		memcpy(value, &structData_.RW_float32, RW_float32Dim1_ * RW_float32Dim2_ * sizeof(float));
-	}
-
-	/*!
-	 * \brief Set array RW_float32 register.
-	 * \param value to be set.
-	 */
-	void setRW_float32(float* value)
-	{
-		memcpy(&structData_.RW_float32, value, RW_float32Dim1_ * RW_float32Dim2_ * sizeof(float));
-	}
-	
-	/*!
-	 * \brief Get std::string RW_string register.
-	 * \param value buffer where the value will be stored.
-	 */
-	void getRW_string(std::string* value) const
-	{
-		for (std::size_t i = 0; i < RW_stringDim1_; i++)
-		{
-			size_t len = (size_t)structData_.RW_string[i][1];
-			value[i].assign(&(structData_.RW_string[i][2]), len);
-		}
-	}
-
-	/*!
-	 * \brief Set std::string RW_string register.
-	 * \param value to be set.
-	 */
-	void setRW_string(std::string* value)
-	{
-	    for (std::size_t i = 0; i < RW_stringDim1_; i++)
-		{
-		    size_t len = (value[i].length() < RW_stringLen_) ? value[i].length() : RW_stringLen_;
-			memcpy(&(structData_.RW_string[i][2]), value[i].c_str(), len);
-			structData_.RW_string[i][0] = char(0);
-			structData_.RW_string[i][1] = char(len);
-		}
-	}
-	
-	/*!
-	 * \brief Get array RW_date register.
-	 * \return value.
-	 */
-	void getRW_date(double* value) const
-	{
-		memcpy(value, &structData_.RW_date, RW_dateDim1_ * RW_dateDim2_ * sizeof(double));
-	}
-
-	/*!
-	 * \brief Set array RW_date register.
-	 * \param value to be set.
-	 */
-	void setRW_date(double* value)
-	{
-		memcpy(&structData_.RW_date, value, RW_dateDim1_ * RW_dateDim2_ * sizeof(double));
-	}
-	
-	/*!
-	 * \brief Get array RW_char register.
-	 * \return value.
-	 */
-	void getRW_char(int8_t* value) const
-	{
-		memcpy(value, &structData_.RW_char, RW_charDim1_ * RW_charDim2_ * sizeof(int8_t));
-	}
-
-	/*!
-	 * \brief Set array RW_char register.
-	 * \param value to be set.
-	 */
-	void setRW_char(int8_t* value)
-	{
-		memcpy(&structData_.RW_char, value, RW_charDim1_ * RW_charDim2_ * sizeof(int8_t));
-	}
-	
-	/*!
-	 * \brief Get array RW_byte register.
-	 * \return value.
-	 */
-	void getRW_byte(uint8_t* value) const
-	{
-		memcpy(value, &structData_.RW_byte, RW_byteDim1_ * RW_byteDim2_ * sizeof(uint8_t));
-	}
-
-	/*!
-	 * \brief Set array RW_byte register.
-	 * \param value to be set.
-	 */
-	void setRW_byte(uint8_t* value)
-	{
-		memcpy(&structData_.RW_byte, value, RW_byteDim1_ * RW_byteDim2_ * sizeof(uint8_t));
-	}
-	
-	/*!
-	 * \brief Get array RW_word register.
-	 * \return value.
-	 */
-	void getRW_word(uint16_t* value) const
-	{
-		memcpy(value, &structData_.RW_word, RW_wordDim1_ * RW_wordDim2_ * sizeof(uint16_t));
-	}
-
-	/*!
-	 * \brief Set array RW_word register.
-	 * \param value to be set.
-	 */
-	void setRW_word(uint16_t* value)
-	{
-		memcpy(&structData_.RW_word, value, RW_wordDim1_ * RW_wordDim2_ * sizeof(uint16_t));
-	}
-	
-	/*!
-	 * \brief Get array RW_dword register.
-	 * \return value.
-	 */
-	void getRW_dword(uint32_t* value) const
-	{
-		memcpy(value, &structData_.RW_dword, RW_dwordDim1_ * RW_dwordDim2_ * sizeof(uint32_t));
-	}
-
-	/*!
-	 * \brief Set array RW_dword register.
-	 * \param value to be set.
-	 */
-	void setRW_dword(uint32_t* value)
-	{
-		memcpy(&structData_.RW_dword, value, RW_dwordDim1_ * RW_dwordDim2_ * sizeof(uint32_t));
-	}
-	
-	/*!
-	 * \brief Get array RW_int register.
-	 * \return value.
-	 */
-	void getRW_int(int16_t* value) const
-	{
-		memcpy(value, &structData_.RW_int, RW_intDim1_ * RW_intDim2_ * sizeof(int16_t));
-	}
-
-	/*!
-	 * \brief Set array RW_int register.
-	 * \param value to be set.
-	 */
-	void setRW_int(int16_t* value)
-	{
-		memcpy(&structData_.RW_int, value, RW_intDim1_ * RW_intDim2_ * sizeof(int16_t));
-	}
-	
-	/*!
-	 * \brief Get array RW_dint register.
-	 * \return value.
-	 */
-	void getRW_dint(int32_t* value) const
-	{
-		memcpy(value, &structData_.RW_dint, RW_dintDim1_ * RW_dintDim2_ * sizeof(int32_t));
-	}
-
-	/*!
-	 * \brief Set array RW_dint register.
-	 * \param value to be set.
-	 */
-	void setRW_dint(int32_t* value)
-	{
-		memcpy(&structData_.RW_dint, value, RW_dintDim1_ * RW_dintDim2_ * sizeof(int32_t));
-	}
-	
-	/*!
-	 * \brief Get array RW_real register.
-	 * \return value.
-	 */
-	void getRW_real(float* value) const
-	{
-		memcpy(value, &structData_.RW_real, RW_realDim1_ * RW_realDim2_ * sizeof(float));
-	}
-
-	/*!
-	 * \brief Set array RW_real register.
-	 * \param value to be set.
-	 */
-	void setRW_real(float* value)
-	{
-		memcpy(&structData_.RW_real, value, RW_realDim1_ * RW_realDim2_ * sizeof(float));
-	}
-	
-	/*!
-	 * \brief Get array RW_dt register.
-	 * \return value.
-	 */
-	void getRW_dt(double* value) const
-	{
-		memcpy(value, &structData_.RW_dt, RW_dtDim1_ * RW_dtDim2_ * sizeof(double));
-	}
-
-	/*!
-	 * \brief Set array RW_dt register.
-	 * \param value to be set.
-	 */
-	void setRW_dt(double* value)
-	{
-		memcpy(&structData_.RW_dt, value, RW_dtDim1_ * RW_dtDim2_ * sizeof(double));
-	}
-
-	virtual inline size_t getSize() const
-	{
-		return sizeof(structData_);
-	}
-
-	virtual void getData(unsigned char * data) const
-	{
-		memcpy(data, &structData_, this->getSize());
-	}
-
-	virtual void setData(unsigned char * data)
-	{
-		memcpy(&structData_, data, this->getSize());
-	}
-
-	virtual inline size_t getOffset() const { return 118; }
-
-	static const std::size_t RW_int8Dim1_ = 2;
-	static const std::size_t RW_int8Dim2_ = 2;
-	static const std::size_t RW_uint8Dim1_ = 2;
-	static const std::size_t RW_uint8Dim2_ = 2;
-	static const std::size_t RW_int16Dim1_ = 2;
-	static const std::size_t RW_int16Dim2_ = 2;
-	static const std::size_t RW_uint16Dim1_ = 2;
-	static const std::size_t RW_uint16Dim2_ = 2;
-	static const std::size_t RW_int32Dim1_ = 2;
-	static const std::size_t RW_int32Dim2_ = 2;
-	static const std::size_t RW_uint32Dim1_ = 2;
-	static const std::size_t RW_uint32Dim2_ = 2;
-	static const std::size_t RW_float32Dim1_ = 2;
-	static const std::size_t RW_float32Dim2_ = 2;
-	static const std::size_t RW_stringDim1_ = 2;
-	static const std::size_t RW_stringDim2_ = 2;
-	static const std::size_t RW_stringLen_ = 64;
-	static const std::size_t RW_dateDim1_ = 2;
-	static const std::size_t RW_dateDim2_ = 2;
-	static const std::size_t RW_charDim1_ = 2;
-	static const std::size_t RW_charDim2_ = 2;
-	static const std::size_t RW_byteDim1_ = 2;
-	static const std::size_t RW_byteDim2_ = 2;
-	static const std::size_t RW_wordDim1_ = 2;
-	static const std::size_t RW_wordDim2_ = 2;
-	static const std::size_t RW_dwordDim1_ = 2;
-	static const std::size_t RW_dwordDim2_ = 2;
-	static const std::size_t RW_intDim1_ = 2;
-	static const std::size_t RW_intDim2_ = 2;
-	static const std::size_t RW_dintDim1_ = 2;
-	static const std::size_t RW_dintDim2_ = 2;
-	static const std::size_t RW_realDim1_ = 2;
-	static const std::size_t RW_realDim2_ = 2;
-	static const std::size_t RW_dtDim1_ = 2;
-	static const std::size_t RW_dtDim2_ = 2;
-
-private:
-
-#pragma pack(push, 1)
-    struct
-    {
-		int8_t RW_int8[RW_int8Dim1_][RW_int8Dim2_];
-		uint8_t RW_uint8[RW_uint8Dim1_][RW_uint8Dim2_];
-		int16_t RW_int16[RW_int16Dim1_][RW_int16Dim2_];
-		uint16_t RW_uint16[RW_uint16Dim1_][RW_uint16Dim2_];
-		int32_t RW_int32[RW_int32Dim1_][RW_int32Dim2_];
-		uint32_t RW_uint32[RW_uint32Dim1_][RW_uint32Dim2_];
-		float RW_float32[RW_float32Dim1_][RW_float32Dim2_];
-		char RW_string[RW_stringDim1_][RW_stringDim2_][RW_stringLen_+2];
-		double RW_date[RW_dateDim1_][RW_dateDim2_];
-		int8_t RW_char[RW_charDim1_][RW_charDim2_];
-		uint8_t RW_byte[RW_byteDim1_][RW_byteDim2_];
-		uint16_t RW_word[RW_wordDim1_][RW_wordDim2_];
-		uint32_t RW_dword[RW_dwordDim1_][RW_dwordDim2_];
-		int16_t RW_int[RW_intDim1_][RW_intDim2_];
-		int32_t RW_dint[RW_dintDim1_][RW_dintDim2_];
-		float RW_real[RW_realDim1_][RW_realDim2_];
-		double RW_dt[RW_dtDim1_][RW_dtDim2_];
-
-    } structData_;
-#pragma pack(pop)
-	
-};
-
-class MyWOBlock : public SilecsServer::Block
-{
-public:
-    /*!
-     * \brief MyWOBlock constructor. It creates an empty block.
-     */
-    MyWOBlock() : SilecsServer::Block("AllTypes:MyWOBlock")
-    {
-    
-    }
-
-    ~MyWOBlock()
-    {
-    }
-    	
-	/*!
-	 * \brief Get array WO_int8 register.
-	 * \return value.
-	 */
-	void getWO_int8(int8_t* value) const
-	{
-		memcpy(value, &structData_.WO_int8, WO_int8Dim1_ * WO_int8Dim2_ * sizeof(int8_t));
-	}
-
-	/*!
-	 * \brief Set array WO_int8 register.
-	 * \param value to be set.
-	 */
-	void setWO_int8(int8_t* value)
-	{
-		memcpy(&structData_.WO_int8, value, WO_int8Dim1_ * WO_int8Dim2_ * sizeof(int8_t));
-	}
-	
-	/*!
-	 * \brief Get array WO_uint8 register.
-	 * \return value.
-	 */
-	void getWO_uint8(uint8_t* value) const
-	{
-		memcpy(value, &structData_.WO_uint8, WO_uint8Dim1_ * WO_uint8Dim2_ * sizeof(uint8_t));
-	}
-
-	/*!
-	 * \brief Set array WO_uint8 register.
-	 * \param value to be set.
-	 */
-	void setWO_uint8(uint8_t* value)
-	{
-		memcpy(&structData_.WO_uint8, value, WO_uint8Dim1_ * WO_uint8Dim2_ * sizeof(uint8_t));
-	}
-	
-	/*!
-	 * \brief Get array WO_int16 register.
-	 * \return value.
-	 */
-	void getWO_int16(int16_t* value) const
-	{
-		memcpy(value, &structData_.WO_int16, WO_int16Dim1_ * WO_int16Dim2_ * sizeof(int16_t));
-	}
-
-	/*!
-	 * \brief Set array WO_int16 register.
-	 * \param value to be set.
-	 */
-	void setWO_int16(int16_t* value)
-	{
-		memcpy(&structData_.WO_int16, value, WO_int16Dim1_ * WO_int16Dim2_ * sizeof(int16_t));
-	}
-	
-	/*!
-	 * \brief Get array WO_uint16 register.
-	 * \return value.
-	 */
-	void getWO_uint16(uint16_t* value) const
-	{
-		memcpy(value, &structData_.WO_uint16, WO_uint16Dim1_ * WO_uint16Dim2_ * sizeof(uint16_t));
-	}
-
-	/*!
-	 * \brief Set array WO_uint16 register.
-	 * \param value to be set.
-	 */
-	void setWO_uint16(uint16_t* value)
-	{
-		memcpy(&structData_.WO_uint16, value, WO_uint16Dim1_ * WO_uint16Dim2_ * sizeof(uint16_t));
-	}
-	
-	/*!
-	 * \brief Get array WO_int32 register.
-	 * \return value.
-	 */
-	void getWO_int32(int32_t* value) const
-	{
-		memcpy(value, &structData_.WO_int32, WO_int32Dim1_ * WO_int32Dim2_ * sizeof(int32_t));
-	}
-
-	/*!
-	 * \brief Set array WO_int32 register.
-	 * \param value to be set.
-	 */
-	void setWO_int32(int32_t* value)
-	{
-		memcpy(&structData_.WO_int32, value, WO_int32Dim1_ * WO_int32Dim2_ * sizeof(int32_t));
-	}
-	
-	/*!
-	 * \brief Get array WO_uint32 register.
-	 * \return value.
-	 */
-	void getWO_uint32(uint32_t* value) const
-	{
-		memcpy(value, &structData_.WO_uint32, WO_uint32Dim1_ * WO_uint32Dim2_ * sizeof(uint32_t));
-	}
-
-	/*!
-	 * \brief Set array WO_uint32 register.
-	 * \param value to be set.
-	 */
-	void setWO_uint32(uint32_t* value)
-	{
-		memcpy(&structData_.WO_uint32, value, WO_uint32Dim1_ * WO_uint32Dim2_ * sizeof(uint32_t));
-	}
-	
-	/*!
-	 * \brief Get array WO_float32 register.
-	 * \return value.
-	 */
-	void getWO_float32(float* value) const
-	{
-		memcpy(value, &structData_.WO_float32, WO_float32Dim1_ * WO_float32Dim2_ * sizeof(float));
-	}
-
-	/*!
-	 * \brief Set array WO_float32 register.
-	 * \param value to be set.
-	 */
-	void setWO_float32(float* value)
-	{
-		memcpy(&structData_.WO_float32, value, WO_float32Dim1_ * WO_float32Dim2_ * sizeof(float));
-	}
-	
-	/*!
-	 * \brief Get std::string WO_string register.
-	 * \param value buffer where the value will be stored.
-	 */
-	void getWO_string(std::string* value) const
-	{
-		for (std::size_t i = 0; i < WO_stringDim1_; i++)
-		{
-			size_t len = (size_t)structData_.WO_string[i][1];
-			value[i].assign(&(structData_.WO_string[i][2]), len);
-		}
-	}
-
-	/*!
-	 * \brief Set std::string WO_string register.
-	 * \param value to be set.
-	 */
-	void setWO_string(std::string* value)
-	{
-	    for (std::size_t i = 0; i < WO_stringDim1_; i++)
-		{
-		    size_t len = (value[i].length() < WO_stringLen_) ? value[i].length() : WO_stringLen_;
-			memcpy(&(structData_.WO_string[i][2]), value[i].c_str(), len);
-			structData_.WO_string[i][0] = char(0);
-			structData_.WO_string[i][1] = char(len);
-		}
-	}
-	
-	/*!
-	 * \brief Get array WO_date register.
-	 * \return value.
-	 */
-	void getWO_date(double* value) const
-	{
-		memcpy(value, &structData_.WO_date, WO_dateDim1_ * WO_dateDim2_ * sizeof(double));
-	}
-
-	/*!
-	 * \brief Set array WO_date register.
-	 * \param value to be set.
-	 */
-	void setWO_date(double* value)
-	{
-		memcpy(&structData_.WO_date, value, WO_dateDim1_ * WO_dateDim2_ * sizeof(double));
-	}
-	
-	/*!
-	 * \brief Get array WO_char register.
-	 * \return value.
-	 */
-	void getWO_char(int8_t* value) const
-	{
-		memcpy(value, &structData_.WO_char, WO_charDim1_ * WO_charDim2_ * sizeof(int8_t));
-	}
-
-	/*!
-	 * \brief Set array WO_char register.
-	 * \param value to be set.
-	 */
-	void setWO_char(int8_t* value)
-	{
-		memcpy(&structData_.WO_char, value, WO_charDim1_ * WO_charDim2_ * sizeof(int8_t));
-	}
-	
-	/*!
-	 * \brief Get array WO_byte register.
-	 * \return value.
-	 */
-	void getWO_byte(uint8_t* value) const
-	{
-		memcpy(value, &structData_.WO_byte, WO_byteDim1_ * WO_byteDim2_ * sizeof(uint8_t));
-	}
-
-	/*!
-	 * \brief Set array WO_byte register.
-	 * \param value to be set.
-	 */
-	void setWO_byte(uint8_t* value)
-	{
-		memcpy(&structData_.WO_byte, value, WO_byteDim1_ * WO_byteDim2_ * sizeof(uint8_t));
-	}
-	
-	/*!
-	 * \brief Get array WO_word register.
-	 * \return value.
-	 */
-	void getWO_word(uint16_t* value) const
-	{
-		memcpy(value, &structData_.WO_word, WO_wordDim1_ * WO_wordDim2_ * sizeof(uint16_t));
-	}
-
-	/*!
-	 * \brief Set array WO_word register.
-	 * \param value to be set.
-	 */
-	void setWO_word(uint16_t* value)
-	{
-		memcpy(&structData_.WO_word, value, WO_wordDim1_ * WO_wordDim2_ * sizeof(uint16_t));
-	}
-	
-	/*!
-	 * \brief Get array WO_dword register.
-	 * \return value.
-	 */
-	void getWO_dword(uint32_t* value) const
-	{
-		memcpy(value, &structData_.WO_dword, WO_dwordDim1_ * WO_dwordDim2_ * sizeof(uint32_t));
-	}
-
-	/*!
-	 * \brief Set array WO_dword register.
-	 * \param value to be set.
-	 */
-	void setWO_dword(uint32_t* value)
-	{
-		memcpy(&structData_.WO_dword, value, WO_dwordDim1_ * WO_dwordDim2_ * sizeof(uint32_t));
-	}
-	
-	/*!
-	 * \brief Get array WO_int register.
-	 * \return value.
-	 */
-	void getWO_int(int16_t* value) const
-	{
-		memcpy(value, &structData_.WO_int, WO_intDim1_ * WO_intDim2_ * sizeof(int16_t));
-	}
-
-	/*!
-	 * \brief Set array WO_int register.
-	 * \param value to be set.
-	 */
-	void setWO_int(int16_t* value)
-	{
-		memcpy(&structData_.WO_int, value, WO_intDim1_ * WO_intDim2_ * sizeof(int16_t));
-	}
-	
-	/*!
-	 * \brief Get array WO_dint register.
-	 * \return value.
-	 */
-	void getWO_dint(int32_t* value) const
-	{
-		memcpy(value, &structData_.WO_dint, WO_dintDim1_ * WO_dintDim2_ * sizeof(int32_t));
-	}
-
-	/*!
-	 * \brief Set array WO_dint register.
-	 * \param value to be set.
-	 */
-	void setWO_dint(int32_t* value)
-	{
-		memcpy(&structData_.WO_dint, value, WO_dintDim1_ * WO_dintDim2_ * sizeof(int32_t));
-	}
-	
-	/*!
-	 * \brief Get array WO_real register.
-	 * \return value.
-	 */
-	void getWO_real(float* value) const
-	{
-		memcpy(value, &structData_.WO_real, WO_realDim1_ * WO_realDim2_ * sizeof(float));
-	}
-
-	/*!
-	 * \brief Set array WO_real register.
-	 * \param value to be set.
-	 */
-	void setWO_real(float* value)
-	{
-		memcpy(&structData_.WO_real, value, WO_realDim1_ * WO_realDim2_ * sizeof(float));
-	}
-	
-	/*!
-	 * \brief Get array WO_dt register.
-	 * \return value.
-	 */
-	void getWO_dt(double* value) const
-	{
-		memcpy(value, &structData_.WO_dt, WO_dtDim1_ * WO_dtDim2_ * sizeof(double));
-	}
-
-	/*!
-	 * \brief Set array WO_dt register.
-	 * \param value to be set.
-	 */
-	void setWO_dt(double* value)
-	{
-		memcpy(&structData_.WO_dt, value, WO_dtDim1_ * WO_dtDim2_ * sizeof(double));
-	}
-
-	virtual inline size_t getSize() const
-	{
-		return sizeof(structData_);
-	}
-
-	virtual void getData(unsigned char * data) const
-	{
-		memcpy(data, &structData_, this->getSize());
-	}
-
-	virtual void setData(unsigned char * data)
-	{
-		memcpy(&structData_, data, this->getSize());
-	}
-
-	virtual inline size_t getOffset() const { return 590; }
-
-	static const std::size_t WO_int8Dim1_ = 10;
-	static const std::size_t WO_int8Dim2_ = 1;
-	static const std::size_t WO_uint8Dim1_ = 10;
-	static const std::size_t WO_uint8Dim2_ = 1;
-	static const std::size_t WO_int16Dim1_ = 10;
-	static const std::size_t WO_int16Dim2_ = 1;
-	static const std::size_t WO_uint16Dim1_ = 10;
-	static const std::size_t WO_uint16Dim2_ = 1;
-	static const std::size_t WO_int32Dim1_ = 10;
-	static const std::size_t WO_int32Dim2_ = 1;
-	static const std::size_t WO_uint32Dim1_ = 10;
-	static const std::size_t WO_uint32Dim2_ = 1;
-	static const std::size_t WO_float32Dim1_ = 10;
-	static const std::size_t WO_float32Dim2_ = 1;
-	static const std::size_t WO_stringDim1_ = 10;
-	static const std::size_t WO_stringDim2_ = 1;
-	static const std::size_t WO_stringLen_ = 64;
-	static const std::size_t WO_dateDim1_ = 10;
-	static const std::size_t WO_dateDim2_ = 1;
-	static const std::size_t WO_charDim1_ = 10;
-	static const std::size_t WO_charDim2_ = 1;
-	static const std::size_t WO_byteDim1_ = 10;
-	static const std::size_t WO_byteDim2_ = 1;
-	static const std::size_t WO_wordDim1_ = 10;
-	static const std::size_t WO_wordDim2_ = 1;
-	static const std::size_t WO_dwordDim1_ = 10;
-	static const std::size_t WO_dwordDim2_ = 1;
-	static const std::size_t WO_intDim1_ = 10;
-	static const std::size_t WO_intDim2_ = 1;
-	static const std::size_t WO_dintDim1_ = 10;
-	static const std::size_t WO_dintDim2_ = 1;
-	static const std::size_t WO_realDim1_ = 10;
-	static const std::size_t WO_realDim2_ = 1;
-	static const std::size_t WO_dtDim1_ = 10;
-	static const std::size_t WO_dtDim2_ = 1;
-
-private:
-
-#pragma pack(push, 1)
-    struct
-    {
-		int8_t WO_int8[WO_int8Dim1_];
-		uint8_t WO_uint8[WO_uint8Dim1_];
-		int16_t WO_int16[WO_int16Dim1_];
-		uint16_t WO_uint16[WO_uint16Dim1_];
-		int32_t WO_int32[WO_int32Dim1_];
-		uint32_t WO_uint32[WO_uint32Dim1_];
-		float WO_float32[WO_float32Dim1_];
-		char WO_string[WO_stringDim1_][WO_stringLen_+2];
-		double WO_date[WO_dateDim1_];
-		int8_t WO_char[WO_charDim1_];
-		uint8_t WO_byte[WO_byteDim1_];
-		uint16_t WO_word[WO_wordDim1_];
-		uint32_t WO_dword[WO_dwordDim1_];
-		int16_t WO_int[WO_intDim1_];
-		int32_t WO_dint[WO_dintDim1_];
-		float WO_real[WO_realDim1_];
-		double WO_dt[WO_dtDim1_];
-
-    } structData_;
-#pragma pack(pop)
-	
-};
-
-
-
-class Device : public SilecsServer::Device
-{
-public:
-    Device(const std::string& label, size_t number):SilecsServer::Device(label, number)
-    {	
-		blockMap_["AllTypes:MyROBlock"] = new MyROBlock();
-		blockMap_["AllTypes:MyRWBlock"] = new MyRWBlock();
-		blockMap_["AllTypes:MyWOBlock"] = new MyWOBlock();    
-    }
-
-    ~Device()
-    {    
-		delete (blockMap_["AllTypes:MyROBlock"]);
-		delete (blockMap_["AllTypes:MyRWBlock"]);
-		delete (blockMap_["AllTypes:MyWOBlock"]);    
-    }
-};
-
-
-class Design : public SilecsServer::Design
-{
-public:
-
-    Design():SilecsServer::Design("AllTypes", "0.1.0")
-    {    
-		deviceMap_["AllTypes:testDevice1"] = new Device("AllTypes:testDevice1", 0);
-		deviceMap_["AllTypes:testDevice2"] = new Device("AllTypes:testDevice2", 1);    
-    }
-
-    ~Design()
-    {    
-		delete(deviceMap_["AllTypes:testDevice1"]);
-		delete(deviceMap_["AllTypes:testDevice2"]);    
-    }
-
-    /*!
-     * \brief Return pointer to the requested device.
-     * \param label Device label.
-     */
-    AllTypes_0_1_0::Device* getDevice(const std::string& label)
-    {
-        if (deviceMap_.find(label) != deviceMap_.end())
-        {
-            return dynamic_cast<AllTypes_0_1_0::Device*>(deviceMap_[label]);
-        }
-        return NULL;
-    }
-};
-
-} /* namespace */
-#endif
diff --git a/silecs-codegen/src/xml/test/generated_temp/controller/Virtual_SiemensDevice.SilecsHeader.h b/silecs-codegen/src/xml/test/generated_temp/controller/Virtual_SiemensDevice.SilecsHeader.h
deleted file mode 100644
index 85ecca60a14438414a6e1df5a886a88b03802650..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/controller/Virtual_SiemensDevice.SilecsHeader.h
+++ /dev/null
@@ -1,203 +0,0 @@
-
-/* Copyright CERN 2015
- *
- * WARNING: This code is automatically generated from your SILECS deploy unit document.
- * You should never modify the content of this file as it would break consistency.
- * Furthermore, any changes will be overwritten in the next code generation.
- * Any modification shall be done using the SILECS development environment
- * and regenerating this source code.
- */
-
-#ifndef SILECSHEADER_1_0_0_H_
-#define SILECSHEADER_1_0_0_H_
-
-#include <silecs-virtual-controller/interface/Block.h>
-#include <silecs-virtual-controller/interface/DeployUnit.h>
-#include <silecs-virtual-controller/interface/Design.h>
-#include <silecs-virtual-controller/interface/Device.h>
-
-namespace SilecsHeader_1_0_0
-{
-
-class Design;
-
-class HdrBlk : public SilecsServer::Block
-{
-public:
-    /*!
-     * \brief hdrBlk constructor. It creates an empty block.
-     */
-    HdrBlk() : SilecsServer::Block("SilecsHeader:hdrBlk")
-    {
-    	set_version("DEV");
-		set_checksum(0X2110E2EA);
-		set_user("schwinn");
-		set_date(0.0);
-    }
-
-    ~HdrBlk()
-    {
-    }
-    	
-	/*!
-	 * \brief Get _version register.
-	 * \return value.
-	 */
-	std::string get_version() const
-	{
-		size_t len = (size_t)structData_._version[1];
-		return std::string((char*)&(structData_._version[2]), len);
-	}
-
-	/*!
-	 * \brief Set _version register.
-	 * \param value to be set.
-	 */
-	void set_version(const std::string &value)
-	{
-		size_t len = (value.length() < _versionLen_) ? value.length() : _versionLen_;
-		memcpy((char*)&(structData_._version[2]), value.c_str(), len);
-		structData_._version[0] = char(0);
-		structData_._version[1] = char(len);
-	}
-	
-	/*!
-	 * \brief Get _checksum register.
-	 * \return value.
-	 */
-	uint32_t get_checksum() const
-	{
-		return structData_._checksum;
-	}
-
-	/*!
-	 * \brief Set _checksum register.
-	 * \param value to be set.
-	 */
-	void set_checksum(uint32_t value)
-	{
-		structData_._checksum = value;
-	}
-	
-	/*!
-	 * \brief Get _user register.
-	 * \return value.
-	 */
-	std::string get_user() const
-	{
-		size_t len = (size_t)structData_._user[1];
-		return std::string((char*)&(structData_._user[2]), len);
-	}
-
-	/*!
-	 * \brief Set _user register.
-	 * \param value to be set.
-	 */
-	void set_user(const std::string &value)
-	{
-		size_t len = (value.length() < _userLen_) ? value.length() : _userLen_;
-		memcpy((char*)&(structData_._user[2]), value.c_str(), len);
-		structData_._user[0] = char(0);
-		structData_._user[1] = char(len);
-	}
-	
-	/*!
-	 * \brief Get _date register.
-	 * \return value.
-	 */
-	double get_date() const
-	{
-		return structData_._date;
-	}
-
-	/*!
-	 * \brief Set _date register.
-	 * \param value to be set.
-	 */
-	void set_date(double value)
-	{
-		structData_._date = value;
-	}
-
-	virtual inline size_t getSize() const
-	{
-		return sizeof(structData_);
-	}
-
-	virtual void getData(unsigned char * data) const
-	{
-		memcpy(data, &structData_, this->getSize());
-	}
-
-	virtual void setData(unsigned char * data)
-	{
-		memcpy(&structData_, data, this->getSize());
-	}
-
-	virtual inline size_t getOffset() const { return 0; }
-
-	static const std::size_t _versionLen_ = 16;
-	static const std::size_t _userLen_ = 16;
-
-private:
-
-#pragma pack(push, 1)
-    struct
-    {
-		char _version[_versionLen_+2];
-		uint32_t _checksum;
-		char _user[_userLen_+2];
-		double _date;
-
-    } structData_;
-#pragma pack(pop)
-	
-};
-
-
-
-class Device : public SilecsServer::Device
-{
-public:
-    Device(const std::string& label, size_t number):SilecsServer::Device(label, number)
-    {	
-		blockMap_["SilecsHeader:hdrBlk"] = new HdrBlk();    
-    }
-
-    ~Device()
-    {    
-		delete (blockMap_["SilecsHeader:hdrBlk"]);    
-    }
-};
-
-
-class Design : public SilecsServer::Design
-{
-public:
-
-    Design():SilecsServer::Design("SilecsHeader", "1.0.0")
-    {    
-		deviceMap_["SilecsHeader:SilecsHeader"] = new Device("SilecsHeader:SilecsHeader", 0);    
-    }
-
-    ~Design()
-    {    
-		delete(deviceMap_["SilecsHeader:SilecsHeader"]);    
-    }
-
-    /*!
-     * \brief Return pointer to the requested device.
-     * \param label Device label.
-     */
-    SilecsHeader_1_0_0::Device* getDevice(const std::string& label)
-    {
-        if (deviceMap_.find(label) != deviceMap_.end())
-        {
-            return dynamic_cast<SilecsHeader_1_0_0::Device*>(deviceMap_[label]);
-        }
-        return NULL;
-    }
-};
-
-} /* namespace */
-#endif
diff --git a/silecs-codegen/src/xml/test/generated_temp/controller/Virtual_SiemensDevice.cpp b/silecs-codegen/src/xml/test/generated_temp/controller/Virtual_SiemensDevice.cpp
deleted file mode 100644
index 43c22864b768a82ba2ad177475d15288ad6e606a..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/controller/Virtual_SiemensDevice.cpp
+++ /dev/null
@@ -1,33 +0,0 @@
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <cstring>
-#include <iostream>
-
-#include <silecs-virtual-controller/core/SilecsSnap7Server.h>
-#include "Virtual_SiemensDevice.h"
-
-class UserSnap7Server : public SilecsServer::SilecsSnap7Server
-{
-public:
-    UserSnap7Server(Virtual_SiemensDevice::DeployUnit* du) : SilecsSnap7Server(du, true) {}
-    virtual ~UserSnap7Server() {}
-
-    virtual void userFunction()
-    {
-      // Implement the specific process control here!
-      // Look at SILECS Wikis: 'Create a virtual controller' chapter 
-    }
-};
-
-int main(int argc, char*argv[])
-{
-    Virtual_SiemensDevice::DeployUnit du;
-    UserSnap7Server server(&du);
-    if (server.startServer() < 0)
-    {
-        std::cout << "Failed to start the VC server: " << du.getName() << std::endl;
-        return -1;
-    }
-    return 0;
-}
diff --git a/silecs-codegen/src/xml/test/generated_temp/controller/Virtual_SiemensDevice.h b/silecs-codegen/src/xml/test/generated_temp/controller/Virtual_SiemensDevice.h
deleted file mode 100644
index 1827c94a58cd3d50d26a1f866c1c11978e3ccfb0..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/controller/Virtual_SiemensDevice.h
+++ /dev/null
@@ -1,53 +0,0 @@
-
-/* Copyright CERN 2015
- *
- * WARNING: This code is automatically generated from your SILECS deploy unit document.
- * You should never modify the content of this file as it would break consistency.
- * Furthermore, any changes will be overwritten in the next code generation.
- * Any modification shall be done using the SILECS development environment
- * and regenerating this source code.
- */
-
-#ifndef VIRTUAL_SIEMENSDEVICE_H_
-#define VIRTUAL_SIEMENSDEVICE_H_
-
-#include <silecs-virtual-controller/interface/DeployUnit.h>
-#include <silecs-virtual-controller/interface/Design.h>
-#include "SilecsHeader_1.0.0.h"
-#include "AllTypes_0.1.0.h"
-
-
-namespace Virtual_SiemensDevice
-{
-
-class DeployUnit : public SilecsServer::DeployUnit
-{
-public:
-
-	DeployUnit() : SilecsServer::DeployUnit("Virtual_SiemensDevice", SilecsServer::S7Protocol, SilecsServer::DeviceMode, 0)
-	{
-    	mapDesigns_["SilecsHeader"] = new SilecsHeader_1_0_0::Design();
-	mapDesigns_["AllTypes"] = new AllTypes_0_1_0::Design();
-	}
-
-    ~DeployUnit()
-    {
-    	delete mapDesigns_["SilecsHeader"];
-	delete mapDesigns_["AllTypes"];
-	}
-
-	SilecsHeader_1_0_0::Design* getSilecsHeader()
-	{
-		return dynamic_cast<SilecsHeader_1_0_0::Design*>(mapDesigns_["SilecsHeader"]);
-	}
-	
-	AllTypes_0_1_0::Design* getAllTypes()
-	{
-		return dynamic_cast<AllTypes_0_1_0::Design*>(mapDesigns_["AllTypes"]);
-	}
-	
-};
-
-}
-
-#endif
diff --git a/silecs-codegen/src/xml/test/generated_temp/wrapper/.gitignore b/silecs-codegen/src/xml/test/generated_temp/wrapper/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..e7a210ec7dcb290f7c9247714741a9caee387a8f
--- /dev/null
+++ b/silecs-codegen/src/xml/test/generated_temp/wrapper/.gitignore
@@ -0,0 +1,3 @@
+*
+*/
+!.gitignore
\ No newline at end of file
diff --git a/silecs-codegen/src/xml/test/generated_temp/wrapper/AllTypes.h b/silecs-codegen/src/xml/test/generated_temp/wrapper/AllTypes.h
deleted file mode 100644
index 5900b5b05a12e769dd10eaab1b40f0757b103ce5..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/wrapper/AllTypes.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright CERN 2015
- *
- * WARNING: This code is automatically generated from your SILECS deploy unit document.
- * You should never modify the content of this file as it would break consistency.
- * Furthermore, any changes will be overwritten in the next code generation.
- * Any modification shall be done using the SILECS development environment
- * and regenerating this source code.
- */
-
-#ifndef ALLTYPES_H_
-#define ALLTYPES_H_
-
-#include <silecs-communication/wrapper/Block.h>
-#include <silecs-communication/wrapper/DeployUnit.h>
-#include <silecs-communication/wrapper/Design.h>
-#include <silecs-communication/wrapper/Device.h>
-
-namespace AllTypes
-{
-
-
-class Design : public SilecsWrapper::Design
-{
-public:
-
-    Design(SilecsWrapper::DeployUnit *deployUnit) :
-                    SilecsWrapper::Design("AllTypes", "0.1.0", deployUnit)
-    {
-    }
-
-    ~Design()
-    {
-    }
-};
-
-} /* namespace AllTypes */
-
-#endif /* ALLTYPES_H_ */
diff --git a/silecs-codegen/src/xml/test/generated_temp/wrapper/Beckhoff_BC9020.h b/silecs-codegen/src/xml/test/generated_temp/wrapper/Beckhoff_BC9020.h
deleted file mode 100644
index 0434b104410b92134dbbb0e3e0f81f9b3107225a..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/wrapper/Beckhoff_BC9020.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/* Copyright CERN 2015
- *
- * WARNING: This code is automatically generated from your SILECS deploy unit document.
- * You should never modify the content of this file as it would break consistency.
- * Furthermore, any changes will be overwritten in the next code generation.
- * Any modification shall be done using the SILECS development environment
- * and regenerating this source code.
- */
-
-#ifndef ALLTYPESDU_H_
-#define ALLTYPESDU_H_
-
-#include <silecs-communication/interface/equipment/SilecsCluster.h>
-#include <silecs-communication/wrapper/DeployUnit.h>
-#include <silecs-communication/wrapper/Design.h>
-
-#include "AllTypes.h"
-
-namespace AllTypesDU
-{
-
-typedef SilecsWrapper::DeployConfig DeployConfig;
-typedef SilecsWrapper::DesignConfig DesignConfig;
-
-class DeployUnit : public SilecsWrapper::DeployUnit
-{
-public:
-
-    /*!
-     * \brief Use this method to create/get the unique instance of the Deploy Unit.
-     *
-     * \param logTopics This parameter can be used to enable/disable log topics
-     * valid topics are ERROR[,INFO,DEBUG,SETUP,ALLOC,RECV,SEND,COMM,DATA,LOCK].
-     *
-     * \param globalConfig This parameter can be used to pass different parameters to
-     * the library. I.e. enabling automatic connection.
-     */
-    static DeployUnit* getInstance(const std::string& logTopics = "",
-            const SilecsWrapper::DeployConfig& globalConfig = SilecsWrapper::DeployConfig())
-    {
-        if (_instance == NULL)
-        {
-            _instance = new DeployUnit(logTopics, globalConfig);
-        }
-        else
-        {
-            if (logTopics.empty() == false)
-            {
-                _instance->getService()->setLogTopics(logTopics);
-            }
-        }
-        return dynamic_cast<DeployUnit*>(_instance);
-    }
-    
-    /*!
-     * \brief Use this method to create/get the unique instance of the Deploy Unit.
-     *
-     * \param globalConfig This parameter can be used to pass different parameters to
-     * the library. I.e. enabling automatic connection.
-     */
-    static DeployUnit* getInstance(const SilecsWrapper::DeployConfig& globalConfig)
-    {
-        return getInstance("", globalConfig);
-    }
-    
-    /*!
-     * \brief Return pointer to the deployed design AllTypes.
-     */
-    AllTypes::Design* getAllTypes()
-    {
-        return _AllTypes;
-    }
-
-private:
-
-    AllTypes::Design* _AllTypes;
-
-    DeployUnit(const std::string& logTopics, const SilecsWrapper::DeployConfig& globalConfig) :
-                    SilecsWrapper::DeployUnit("AllTypesDU", "0.1.0", logTopics, globalConfig)
-    {
-        // Construct Design AllTypes
-        _AllTypes = new AllTypes::Design((SilecsWrapper::DeployUnit*) this);
-        
-    }
-    
-    ~DeployUnit()
-    {
-        delete _AllTypes;
-    }
-};
-
-
-class Controller : public SilecsWrapper::Controller
-{
-public:
-    Controller(SilecsWrapper::Design *design, const std::string parameterFile) :
-                    SilecsWrapper::Controller("Beckhoff_BC9020", "", design, parameterFile)
-    {
-            _deviceMap.insert(std::pair<std::string, SilecsWrapper::Device*>("testDevice1", new SilecsWrapper::Device("testDevice1", this)));
-            _deviceMap.insert(std::pair<std::string, SilecsWrapper::Device*>("testDevice2", new SilecsWrapper::Device("testDevice2", this)));
-    }
-
-    ~Controller()
-    {
-        map<std::string, SilecsWrapper::Device*>::iterator it;
-        for (it = _deviceMap.begin(); it != _deviceMap.end(); it++)
-        {
-            delete it->second;
-        }
-    }
-
-    /*!
-     * \brief Return pointer to the requested device.
-     * \param label Device label.
-     */
-    SilecsWrapper::Device* getDevice(const std::string& label)
-    {
-        if (_deviceMap.find(label) != _deviceMap.end())
-        {
-            return _deviceMap[label];
-        }
-        throw Silecs::SilecsException(__FILE__, __LINE__, Silecs::PARAM_UNKNOWN_DEVICE_NAME, label);
-    }
-
-    std::map<std::string, SilecsWrapper::Device*>& getDeviceMap()
-    {
-        return _deviceMap;
-    }
-    
-    /*!
-     * \brief Get pointer to device testDevice1.
-     */
-    SilecsWrapper::Device* getTestDevice1()
-    {
-        return _deviceMap["testDevice1"];
-    }
-    
-    /*!
-     * \brief Get pointer to device testDevice2.
-     */
-    SilecsWrapper::Device* getTestDevice2()
-    {
-        return _deviceMap["testDevice2"];
-    }
-    
-private:
-    std::map<std::string, SilecsWrapper::Device*> _deviceMap;
-};
-
-
-} /* namespace AllTypesDU */
-
-#endif /* ALLTYPESDU_H_ */
diff --git a/silecs-codegen/src/xml/test/generated_temp/wrapper/Beckhoff_CX9020.h b/silecs-codegen/src/xml/test/generated_temp/wrapper/Beckhoff_CX9020.h
deleted file mode 100644
index 7feef9927fc34162e92a9b9abc6b623f81eda5fc..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/wrapper/Beckhoff_CX9020.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/* Copyright CERN 2015
- *
- * WARNING: This code is automatically generated from your SILECS deploy unit document.
- * You should never modify the content of this file as it would break consistency.
- * Furthermore, any changes will be overwritten in the next code generation.
- * Any modification shall be done using the SILECS development environment
- * and regenerating this source code.
- */
-
-#ifndef ALLTYPESDU_H_
-#define ALLTYPESDU_H_
-
-#include <silecs-communication/interface/equipment/SilecsCluster.h>
-#include <silecs-communication/wrapper/DeployUnit.h>
-#include <silecs-communication/wrapper/Design.h>
-
-#include "AllTypes.h"
-
-namespace AllTypesDU
-{
-
-typedef SilecsWrapper::DeployConfig DeployConfig;
-typedef SilecsWrapper::DesignConfig DesignConfig;
-
-class DeployUnit : public SilecsWrapper::DeployUnit
-{
-public:
-
-    /*!
-     * \brief Use this method to create/get the unique instance of the Deploy Unit.
-     *
-     * \param logTopics This parameter can be used to enable/disable log topics
-     * valid topics are ERROR[,INFO,DEBUG,SETUP,ALLOC,RECV,SEND,COMM,DATA,LOCK].
-     *
-     * \param globalConfig This parameter can be used to pass different parameters to
-     * the library. I.e. enabling automatic connection.
-     */
-    static DeployUnit* getInstance(const std::string& logTopics = "",
-            const SilecsWrapper::DeployConfig& globalConfig = SilecsWrapper::DeployConfig())
-    {
-        if (_instance == NULL)
-        {
-            _instance = new DeployUnit(logTopics, globalConfig);
-        }
-        else
-        {
-            if (logTopics.empty() == false)
-            {
-                _instance->getService()->setLogTopics(logTopics);
-            }
-        }
-        return dynamic_cast<DeployUnit*>(_instance);
-    }
-    
-    /*!
-     * \brief Use this method to create/get the unique instance of the Deploy Unit.
-     *
-     * \param globalConfig This parameter can be used to pass different parameters to
-     * the library. I.e. enabling automatic connection.
-     */
-    static DeployUnit* getInstance(const SilecsWrapper::DeployConfig& globalConfig)
-    {
-        return getInstance("", globalConfig);
-    }
-    
-    /*!
-     * \brief Return pointer to the deployed design AllTypes.
-     */
-    AllTypes::Design* getAllTypes()
-    {
-        return _AllTypes;
-    }
-
-private:
-
-    AllTypes::Design* _AllTypes;
-
-    DeployUnit(const std::string& logTopics, const SilecsWrapper::DeployConfig& globalConfig) :
-                    SilecsWrapper::DeployUnit("AllTypesDU", "0.1.0", logTopics, globalConfig)
-    {
-        // Construct Design AllTypes
-        _AllTypes = new AllTypes::Design((SilecsWrapper::DeployUnit*) this);
-        
-    }
-    
-    ~DeployUnit()
-    {
-        delete _AllTypes;
-    }
-};
-
-
-class Controller : public SilecsWrapper::Controller
-{
-public:
-    Controller(SilecsWrapper::Design *design, const std::string parameterFile) :
-                    SilecsWrapper::Controller("Beckhoff_CX9020", "", design, parameterFile)
-    {
-            _deviceMap.insert(std::pair<std::string, SilecsWrapper::Device*>("testDevice1", new SilecsWrapper::Device("testDevice1", this)));
-            _deviceMap.insert(std::pair<std::string, SilecsWrapper::Device*>("testDevice2", new SilecsWrapper::Device("testDevice2", this)));
-    }
-
-    ~Controller()
-    {
-        map<std::string, SilecsWrapper::Device*>::iterator it;
-        for (it = _deviceMap.begin(); it != _deviceMap.end(); it++)
-        {
-            delete it->second;
-        }
-    }
-
-    /*!
-     * \brief Return pointer to the requested device.
-     * \param label Device label.
-     */
-    SilecsWrapper::Device* getDevice(const std::string& label)
-    {
-        if (_deviceMap.find(label) != _deviceMap.end())
-        {
-            return _deviceMap[label];
-        }
-        throw Silecs::SilecsException(__FILE__, __LINE__, Silecs::PARAM_UNKNOWN_DEVICE_NAME, label);
-    }
-
-    std::map<std::string, SilecsWrapper::Device*>& getDeviceMap()
-    {
-        return _deviceMap;
-    }
-    
-    /*!
-     * \brief Get pointer to device testDevice1.
-     */
-    SilecsWrapper::Device* getTestDevice1()
-    {
-        return _deviceMap["testDevice1"];
-    }
-    
-    /*!
-     * \brief Get pointer to device testDevice2.
-     */
-    SilecsWrapper::Device* getTestDevice2()
-    {
-        return _deviceMap["testDevice2"];
-    }
-    
-private:
-    std::map<std::string, SilecsWrapper::Device*> _deviceMap;
-};
-
-
-} /* namespace AllTypesDU */
-
-#endif /* ALLTYPESDU_H_ */
diff --git a/silecs-codegen/src/xml/test/generated_temp/wrapper/Rabbit_BlockMode.h b/silecs-codegen/src/xml/test/generated_temp/wrapper/Rabbit_BlockMode.h
deleted file mode 100644
index c5620055cf7af94d6996aae076cc93076ae8fc41..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/wrapper/Rabbit_BlockMode.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/* Copyright CERN 2015
- *
- * WARNING: This code is automatically generated from your SILECS deploy unit document.
- * You should never modify the content of this file as it would break consistency.
- * Furthermore, any changes will be overwritten in the next code generation.
- * Any modification shall be done using the SILECS development environment
- * and regenerating this source code.
- */
-
-#ifndef ALLTYPESDU_H_
-#define ALLTYPESDU_H_
-
-#include <silecs-communication/interface/equipment/SilecsCluster.h>
-#include <silecs-communication/wrapper/DeployUnit.h>
-#include <silecs-communication/wrapper/Design.h>
-
-#include "AllTypes.h"
-
-namespace AllTypesDU
-{
-
-typedef SilecsWrapper::DeployConfig DeployConfig;
-typedef SilecsWrapper::DesignConfig DesignConfig;
-
-class DeployUnit : public SilecsWrapper::DeployUnit
-{
-public:
-
-    /*!
-     * \brief Use this method to create/get the unique instance of the Deploy Unit.
-     *
-     * \param logTopics This parameter can be used to enable/disable log topics
-     * valid topics are ERROR[,INFO,DEBUG,SETUP,ALLOC,RECV,SEND,COMM,DATA,LOCK].
-     *
-     * \param globalConfig This parameter can be used to pass different parameters to
-     * the library. I.e. enabling automatic connection.
-     */
-    static DeployUnit* getInstance(const std::string& logTopics = "",
-            const SilecsWrapper::DeployConfig& globalConfig = SilecsWrapper::DeployConfig())
-    {
-        if (_instance == NULL)
-        {
-            _instance = new DeployUnit(logTopics, globalConfig);
-        }
-        else
-        {
-            if (logTopics.empty() == false)
-            {
-                _instance->getService()->setLogTopics(logTopics);
-            }
-        }
-        return dynamic_cast<DeployUnit*>(_instance);
-    }
-    
-    /*!
-     * \brief Use this method to create/get the unique instance of the Deploy Unit.
-     *
-     * \param globalConfig This parameter can be used to pass different parameters to
-     * the library. I.e. enabling automatic connection.
-     */
-    static DeployUnit* getInstance(const SilecsWrapper::DeployConfig& globalConfig)
-    {
-        return getInstance("", globalConfig);
-    }
-    
-    /*!
-     * \brief Return pointer to the deployed design AllTypes.
-     */
-    AllTypes::Design* getAllTypes()
-    {
-        return _AllTypes;
-    }
-
-private:
-
-    AllTypes::Design* _AllTypes;
-
-    DeployUnit(const std::string& logTopics, const SilecsWrapper::DeployConfig& globalConfig) :
-                    SilecsWrapper::DeployUnit("AllTypesDU", "0.1.0", logTopics, globalConfig)
-    {
-        // Construct Design AllTypes
-        _AllTypes = new AllTypes::Design((SilecsWrapper::DeployUnit*) this);
-        
-    }
-    
-    ~DeployUnit()
-    {
-        delete _AllTypes;
-    }
-};
-
-
-class Controller : public SilecsWrapper::Controller
-{
-public:
-    Controller(SilecsWrapper::Design *design, const std::string parameterFile) :
-                    SilecsWrapper::Controller("Rabbit_BlockMode", "", design, parameterFile)
-    {
-            _deviceMap.insert(std::pair<std::string, SilecsWrapper::Device*>("testDevice1", new SilecsWrapper::Device("testDevice1", this)));
-            _deviceMap.insert(std::pair<std::string, SilecsWrapper::Device*>("testDevice2", new SilecsWrapper::Device("testDevice2", this)));
-    }
-
-    ~Controller()
-    {
-        map<std::string, SilecsWrapper::Device*>::iterator it;
-        for (it = _deviceMap.begin(); it != _deviceMap.end(); it++)
-        {
-            delete it->second;
-        }
-    }
-
-    /*!
-     * \brief Return pointer to the requested device.
-     * \param label Device label.
-     */
-    SilecsWrapper::Device* getDevice(const std::string& label)
-    {
-        if (_deviceMap.find(label) != _deviceMap.end())
-        {
-            return _deviceMap[label];
-        }
-        throw Silecs::SilecsException(__FILE__, __LINE__, Silecs::PARAM_UNKNOWN_DEVICE_NAME, label);
-    }
-
-    std::map<std::string, SilecsWrapper::Device*>& getDeviceMap()
-    {
-        return _deviceMap;
-    }
-    
-    /*!
-     * \brief Get pointer to device testDevice1.
-     */
-    SilecsWrapper::Device* getTestDevice1()
-    {
-        return _deviceMap["testDevice1"];
-    }
-    
-    /*!
-     * \brief Get pointer to device testDevice2.
-     */
-    SilecsWrapper::Device* getTestDevice2()
-    {
-        return _deviceMap["testDevice2"];
-    }
-    
-private:
-    std::map<std::string, SilecsWrapper::Device*> _deviceMap;
-};
-
-
-} /* namespace AllTypesDU */
-
-#endif /* ALLTYPESDU_H_ */
diff --git a/silecs-codegen/src/xml/test/generated_temp/wrapper/Rabbit_DeviceMode.h b/silecs-codegen/src/xml/test/generated_temp/wrapper/Rabbit_DeviceMode.h
deleted file mode 100644
index a90d775c078fbd3334d2bbff7aab429f7e46f6a5..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/wrapper/Rabbit_DeviceMode.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/* Copyright CERN 2015
- *
- * WARNING: This code is automatically generated from your SILECS deploy unit document.
- * You should never modify the content of this file as it would break consistency.
- * Furthermore, any changes will be overwritten in the next code generation.
- * Any modification shall be done using the SILECS development environment
- * and regenerating this source code.
- */
-
-#ifndef ALLTYPESDU_H_
-#define ALLTYPESDU_H_
-
-#include <silecs-communication/interface/equipment/SilecsCluster.h>
-#include <silecs-communication/wrapper/DeployUnit.h>
-#include <silecs-communication/wrapper/Design.h>
-
-#include "AllTypes.h"
-
-namespace AllTypesDU
-{
-
-typedef SilecsWrapper::DeployConfig DeployConfig;
-typedef SilecsWrapper::DesignConfig DesignConfig;
-
-class DeployUnit : public SilecsWrapper::DeployUnit
-{
-public:
-
-    /*!
-     * \brief Use this method to create/get the unique instance of the Deploy Unit.
-     *
-     * \param logTopics This parameter can be used to enable/disable log topics
-     * valid topics are ERROR[,INFO,DEBUG,SETUP,ALLOC,RECV,SEND,COMM,DATA,LOCK].
-     *
-     * \param globalConfig This parameter can be used to pass different parameters to
-     * the library. I.e. enabling automatic connection.
-     */
-    static DeployUnit* getInstance(const std::string& logTopics = "",
-            const SilecsWrapper::DeployConfig& globalConfig = SilecsWrapper::DeployConfig())
-    {
-        if (_instance == NULL)
-        {
-            _instance = new DeployUnit(logTopics, globalConfig);
-        }
-        else
-        {
-            if (logTopics.empty() == false)
-            {
-                _instance->getService()->setLogTopics(logTopics);
-            }
-        }
-        return dynamic_cast<DeployUnit*>(_instance);
-    }
-    
-    /*!
-     * \brief Use this method to create/get the unique instance of the Deploy Unit.
-     *
-     * \param globalConfig This parameter can be used to pass different parameters to
-     * the library. I.e. enabling automatic connection.
-     */
-    static DeployUnit* getInstance(const SilecsWrapper::DeployConfig& globalConfig)
-    {
-        return getInstance("", globalConfig);
-    }
-    
-    /*!
-     * \brief Return pointer to the deployed design AllTypes.
-     */
-    AllTypes::Design* getAllTypes()
-    {
-        return _AllTypes;
-    }
-
-private:
-
-    AllTypes::Design* _AllTypes;
-
-    DeployUnit(const std::string& logTopics, const SilecsWrapper::DeployConfig& globalConfig) :
-                    SilecsWrapper::DeployUnit("AllTypesDU", "0.1.0", logTopics, globalConfig)
-    {
-        // Construct Design AllTypes
-        _AllTypes = new AllTypes::Design((SilecsWrapper::DeployUnit*) this);
-        
-    }
-    
-    ~DeployUnit()
-    {
-        delete _AllTypes;
-    }
-};
-
-
-class Controller : public SilecsWrapper::Controller
-{
-public:
-    Controller(SilecsWrapper::Design *design, const std::string parameterFile) :
-                    SilecsWrapper::Controller("Rabbit_DeviceMode", "", design, parameterFile)
-    {
-            _deviceMap.insert(std::pair<std::string, SilecsWrapper::Device*>("testDevice1", new SilecsWrapper::Device("testDevice1", this)));
-            _deviceMap.insert(std::pair<std::string, SilecsWrapper::Device*>("testDevice2", new SilecsWrapper::Device("testDevice2", this)));
-    }
-
-    ~Controller()
-    {
-        map<std::string, SilecsWrapper::Device*>::iterator it;
-        for (it = _deviceMap.begin(); it != _deviceMap.end(); it++)
-        {
-            delete it->second;
-        }
-    }
-
-    /*!
-     * \brief Return pointer to the requested device.
-     * \param label Device label.
-     */
-    SilecsWrapper::Device* getDevice(const std::string& label)
-    {
-        if (_deviceMap.find(label) != _deviceMap.end())
-        {
-            return _deviceMap[label];
-        }
-        throw Silecs::SilecsException(__FILE__, __LINE__, Silecs::PARAM_UNKNOWN_DEVICE_NAME, label);
-    }
-
-    std::map<std::string, SilecsWrapper::Device*>& getDeviceMap()
-    {
-        return _deviceMap;
-    }
-    
-    /*!
-     * \brief Get pointer to device testDevice1.
-     */
-    SilecsWrapper::Device* getTestDevice1()
-    {
-        return _deviceMap["testDevice1"];
-    }
-    
-    /*!
-     * \brief Get pointer to device testDevice2.
-     */
-    SilecsWrapper::Device* getTestDevice2()
-    {
-        return _deviceMap["testDevice2"];
-    }
-    
-private:
-    std::map<std::string, SilecsWrapper::Device*> _deviceMap;
-};
-
-
-} /* namespace AllTypesDU */
-
-#endif /* ALLTYPESDU_H_ */
diff --git a/silecs-codegen/src/xml/test/generated_temp/wrapper/Schneider_M340.h b/silecs-codegen/src/xml/test/generated_temp/wrapper/Schneider_M340.h
deleted file mode 100644
index d31fa177a7b23b5b220ff1548ba7ffbea13267ad..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/wrapper/Schneider_M340.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/* Copyright CERN 2015
- *
- * WARNING: This code is automatically generated from your SILECS deploy unit document.
- * You should never modify the content of this file as it would break consistency.
- * Furthermore, any changes will be overwritten in the next code generation.
- * Any modification shall be done using the SILECS development environment
- * and regenerating this source code.
- */
-
-#ifndef ALLTYPESDU_H_
-#define ALLTYPESDU_H_
-
-#include <silecs-communication/interface/equipment/SilecsCluster.h>
-#include <silecs-communication/wrapper/DeployUnit.h>
-#include <silecs-communication/wrapper/Design.h>
-
-#include "AllTypes.h"
-
-namespace AllTypesDU
-{
-
-typedef SilecsWrapper::DeployConfig DeployConfig;
-typedef SilecsWrapper::DesignConfig DesignConfig;
-
-class DeployUnit : public SilecsWrapper::DeployUnit
-{
-public:
-
-    /*!
-     * \brief Use this method to create/get the unique instance of the Deploy Unit.
-     *
-     * \param logTopics This parameter can be used to enable/disable log topics
-     * valid topics are ERROR[,INFO,DEBUG,SETUP,ALLOC,RECV,SEND,COMM,DATA,LOCK].
-     *
-     * \param globalConfig This parameter can be used to pass different parameters to
-     * the library. I.e. enabling automatic connection.
-     */
-    static DeployUnit* getInstance(const std::string& logTopics = "",
-            const SilecsWrapper::DeployConfig& globalConfig = SilecsWrapper::DeployConfig())
-    {
-        if (_instance == NULL)
-        {
-            _instance = new DeployUnit(logTopics, globalConfig);
-        }
-        else
-        {
-            if (logTopics.empty() == false)
-            {
-                _instance->getService()->setLogTopics(logTopics);
-            }
-        }
-        return dynamic_cast<DeployUnit*>(_instance);
-    }
-    
-    /*!
-     * \brief Use this method to create/get the unique instance of the Deploy Unit.
-     *
-     * \param globalConfig This parameter can be used to pass different parameters to
-     * the library. I.e. enabling automatic connection.
-     */
-    static DeployUnit* getInstance(const SilecsWrapper::DeployConfig& globalConfig)
-    {
-        return getInstance("", globalConfig);
-    }
-    
-    /*!
-     * \brief Return pointer to the deployed design AllTypes.
-     */
-    AllTypes::Design* getAllTypes()
-    {
-        return _AllTypes;
-    }
-
-private:
-
-    AllTypes::Design* _AllTypes;
-
-    DeployUnit(const std::string& logTopics, const SilecsWrapper::DeployConfig& globalConfig) :
-                    SilecsWrapper::DeployUnit("AllTypesDU", "0.1.0", logTopics, globalConfig)
-    {
-        // Construct Design AllTypes
-        _AllTypes = new AllTypes::Design((SilecsWrapper::DeployUnit*) this);
-        
-    }
-    
-    ~DeployUnit()
-    {
-        delete _AllTypes;
-    }
-};
-
-
-class Controller : public SilecsWrapper::Controller
-{
-public:
-    Controller(SilecsWrapper::Design *design, const std::string parameterFile) :
-                    SilecsWrapper::Controller("Schneider_M340", "", design, parameterFile)
-    {
-            _deviceMap.insert(std::pair<std::string, SilecsWrapper::Device*>("testDevice1", new SilecsWrapper::Device("testDevice1", this)));
-            _deviceMap.insert(std::pair<std::string, SilecsWrapper::Device*>("testDevice2", new SilecsWrapper::Device("testDevice2", this)));
-    }
-
-    ~Controller()
-    {
-        map<std::string, SilecsWrapper::Device*>::iterator it;
-        for (it = _deviceMap.begin(); it != _deviceMap.end(); it++)
-        {
-            delete it->second;
-        }
-    }
-
-    /*!
-     * \brief Return pointer to the requested device.
-     * \param label Device label.
-     */
-    SilecsWrapper::Device* getDevice(const std::string& label)
-    {
-        if (_deviceMap.find(label) != _deviceMap.end())
-        {
-            return _deviceMap[label];
-        }
-        throw Silecs::SilecsException(__FILE__, __LINE__, Silecs::PARAM_UNKNOWN_DEVICE_NAME, label);
-    }
-
-    std::map<std::string, SilecsWrapper::Device*>& getDeviceMap()
-    {
-        return _deviceMap;
-    }
-    
-    /*!
-     * \brief Get pointer to device testDevice1.
-     */
-    SilecsWrapper::Device* getTestDevice1()
-    {
-        return _deviceMap["testDevice1"];
-    }
-    
-    /*!
-     * \brief Get pointer to device testDevice2.
-     */
-    SilecsWrapper::Device* getTestDevice2()
-    {
-        return _deviceMap["testDevice2"];
-    }
-    
-private:
-    std::map<std::string, SilecsWrapper::Device*> _deviceMap;
-};
-
-
-} /* namespace AllTypesDU */
-
-#endif /* ALLTYPESDU_H_ */
diff --git a/silecs-codegen/src/xml/test/generated_temp/wrapper/Schneider_PremiumQuantum.h b/silecs-codegen/src/xml/test/generated_temp/wrapper/Schneider_PremiumQuantum.h
deleted file mode 100644
index 58576f6facb5e61e418f31f9350c6aff7a0ea63b..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/wrapper/Schneider_PremiumQuantum.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/* Copyright CERN 2015
- *
- * WARNING: This code is automatically generated from your SILECS deploy unit document.
- * You should never modify the content of this file as it would break consistency.
- * Furthermore, any changes will be overwritten in the next code generation.
- * Any modification shall be done using the SILECS development environment
- * and regenerating this source code.
- */
-
-#ifndef ALLTYPESDU_H_
-#define ALLTYPESDU_H_
-
-#include <silecs-communication/interface/equipment/SilecsCluster.h>
-#include <silecs-communication/wrapper/DeployUnit.h>
-#include <silecs-communication/wrapper/Design.h>
-
-#include "AllTypes.h"
-
-namespace AllTypesDU
-{
-
-typedef SilecsWrapper::DeployConfig DeployConfig;
-typedef SilecsWrapper::DesignConfig DesignConfig;
-
-class DeployUnit : public SilecsWrapper::DeployUnit
-{
-public:
-
-    /*!
-     * \brief Use this method to create/get the unique instance of the Deploy Unit.
-     *
-     * \param logTopics This parameter can be used to enable/disable log topics
-     * valid topics are ERROR[,INFO,DEBUG,SETUP,ALLOC,RECV,SEND,COMM,DATA,LOCK].
-     *
-     * \param globalConfig This parameter can be used to pass different parameters to
-     * the library. I.e. enabling automatic connection.
-     */
-    static DeployUnit* getInstance(const std::string& logTopics = "",
-            const SilecsWrapper::DeployConfig& globalConfig = SilecsWrapper::DeployConfig())
-    {
-        if (_instance == NULL)
-        {
-            _instance = new DeployUnit(logTopics, globalConfig);
-        }
-        else
-        {
-            if (logTopics.empty() == false)
-            {
-                _instance->getService()->setLogTopics(logTopics);
-            }
-        }
-        return dynamic_cast<DeployUnit*>(_instance);
-    }
-    
-    /*!
-     * \brief Use this method to create/get the unique instance of the Deploy Unit.
-     *
-     * \param globalConfig This parameter can be used to pass different parameters to
-     * the library. I.e. enabling automatic connection.
-     */
-    static DeployUnit* getInstance(const SilecsWrapper::DeployConfig& globalConfig)
-    {
-        return getInstance("", globalConfig);
-    }
-    
-    /*!
-     * \brief Return pointer to the deployed design AllTypes.
-     */
-    AllTypes::Design* getAllTypes()
-    {
-        return _AllTypes;
-    }
-
-private:
-
-    AllTypes::Design* _AllTypes;
-
-    DeployUnit(const std::string& logTopics, const SilecsWrapper::DeployConfig& globalConfig) :
-                    SilecsWrapper::DeployUnit("AllTypesDU", "0.1.0", logTopics, globalConfig)
-    {
-        // Construct Design AllTypes
-        _AllTypes = new AllTypes::Design((SilecsWrapper::DeployUnit*) this);
-        
-    }
-    
-    ~DeployUnit()
-    {
-        delete _AllTypes;
-    }
-};
-
-
-class Controller : public SilecsWrapper::Controller
-{
-public:
-    Controller(SilecsWrapper::Design *design, const std::string parameterFile) :
-                    SilecsWrapper::Controller("Schneider_PremiumQuantum", "", design, parameterFile)
-    {
-            _deviceMap.insert(std::pair<std::string, SilecsWrapper::Device*>("testDevice1", new SilecsWrapper::Device("testDevice1", this)));
-            _deviceMap.insert(std::pair<std::string, SilecsWrapper::Device*>("testDevice2", new SilecsWrapper::Device("testDevice2", this)));
-    }
-
-    ~Controller()
-    {
-        map<std::string, SilecsWrapper::Device*>::iterator it;
-        for (it = _deviceMap.begin(); it != _deviceMap.end(); it++)
-        {
-            delete it->second;
-        }
-    }
-
-    /*!
-     * \brief Return pointer to the requested device.
-     * \param label Device label.
-     */
-    SilecsWrapper::Device* getDevice(const std::string& label)
-    {
-        if (_deviceMap.find(label) != _deviceMap.end())
-        {
-            return _deviceMap[label];
-        }
-        throw Silecs::SilecsException(__FILE__, __LINE__, Silecs::PARAM_UNKNOWN_DEVICE_NAME, label);
-    }
-
-    std::map<std::string, SilecsWrapper::Device*>& getDeviceMap()
-    {
-        return _deviceMap;
-    }
-    
-    /*!
-     * \brief Get pointer to device testDevice1.
-     */
-    SilecsWrapper::Device* getTestDevice1()
-    {
-        return _deviceMap["testDevice1"];
-    }
-    
-    /*!
-     * \brief Get pointer to device testDevice2.
-     */
-    SilecsWrapper::Device* getTestDevice2()
-    {
-        return _deviceMap["testDevice2"];
-    }
-    
-private:
-    std::map<std::string, SilecsWrapper::Device*> _deviceMap;
-};
-
-
-} /* namespace AllTypesDU */
-
-#endif /* ALLTYPESDU_H_ */
diff --git a/silecs-codegen/src/xml/test/generated_temp/wrapper/Siemens_Step7Block.h b/silecs-codegen/src/xml/test/generated_temp/wrapper/Siemens_Step7Block.h
deleted file mode 100644
index 9e32650f2ac7cd5376ac08e3f6e70ab22ab0942d..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/wrapper/Siemens_Step7Block.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/* Copyright CERN 2015
- *
- * WARNING: This code is automatically generated from your SILECS deploy unit document.
- * You should never modify the content of this file as it would break consistency.
- * Furthermore, any changes will be overwritten in the next code generation.
- * Any modification shall be done using the SILECS development environment
- * and regenerating this source code.
- */
-
-#ifndef ALLTYPESDU_H_
-#define ALLTYPESDU_H_
-
-#include <silecs-communication/interface/equipment/SilecsCluster.h>
-#include <silecs-communication/wrapper/DeployUnit.h>
-#include <silecs-communication/wrapper/Design.h>
-
-#include "AllTypes.h"
-
-namespace AllTypesDU
-{
-
-typedef SilecsWrapper::DeployConfig DeployConfig;
-typedef SilecsWrapper::DesignConfig DesignConfig;
-
-class DeployUnit : public SilecsWrapper::DeployUnit
-{
-public:
-
-    /*!
-     * \brief Use this method to create/get the unique instance of the Deploy Unit.
-     *
-     * \param logTopics This parameter can be used to enable/disable log topics
-     * valid topics are ERROR[,INFO,DEBUG,SETUP,ALLOC,RECV,SEND,COMM,DATA,LOCK].
-     *
-     * \param globalConfig This parameter can be used to pass different parameters to
-     * the library. I.e. enabling automatic connection.
-     */
-    static DeployUnit* getInstance(const std::string& logTopics = "",
-            const SilecsWrapper::DeployConfig& globalConfig = SilecsWrapper::DeployConfig())
-    {
-        if (_instance == NULL)
-        {
-            _instance = new DeployUnit(logTopics, globalConfig);
-        }
-        else
-        {
-            if (logTopics.empty() == false)
-            {
-                _instance->getService()->setLogTopics(logTopics);
-            }
-        }
-        return dynamic_cast<DeployUnit*>(_instance);
-    }
-    
-    /*!
-     * \brief Use this method to create/get the unique instance of the Deploy Unit.
-     *
-     * \param globalConfig This parameter can be used to pass different parameters to
-     * the library. I.e. enabling automatic connection.
-     */
-    static DeployUnit* getInstance(const SilecsWrapper::DeployConfig& globalConfig)
-    {
-        return getInstance("", globalConfig);
-    }
-    
-    /*!
-     * \brief Return pointer to the deployed design AllTypes.
-     */
-    AllTypes::Design* getAllTypes()
-    {
-        return _AllTypes;
-    }
-
-private:
-
-    AllTypes::Design* _AllTypes;
-
-    DeployUnit(const std::string& logTopics, const SilecsWrapper::DeployConfig& globalConfig) :
-                    SilecsWrapper::DeployUnit("AllTypesDU", "0.1.0", logTopics, globalConfig)
-    {
-        // Construct Design AllTypes
-        _AllTypes = new AllTypes::Design((SilecsWrapper::DeployUnit*) this);
-        
-    }
-    
-    ~DeployUnit()
-    {
-        delete _AllTypes;
-    }
-};
-
-
-class Controller : public SilecsWrapper::Controller
-{
-public:
-    Controller(SilecsWrapper::Design *design, const std::string parameterFile) :
-                    SilecsWrapper::Controller("Siemens_Step7Block", "", design, parameterFile)
-    {
-            _deviceMap.insert(std::pair<std::string, SilecsWrapper::Device*>("testDevice1", new SilecsWrapper::Device("testDevice1", this)));
-            _deviceMap.insert(std::pair<std::string, SilecsWrapper::Device*>("testDevice2", new SilecsWrapper::Device("testDevice2", this)));
-    }
-
-    ~Controller()
-    {
-        map<std::string, SilecsWrapper::Device*>::iterator it;
-        for (it = _deviceMap.begin(); it != _deviceMap.end(); it++)
-        {
-            delete it->second;
-        }
-    }
-
-    /*!
-     * \brief Return pointer to the requested device.
-     * \param label Device label.
-     */
-    SilecsWrapper::Device* getDevice(const std::string& label)
-    {
-        if (_deviceMap.find(label) != _deviceMap.end())
-        {
-            return _deviceMap[label];
-        }
-        throw Silecs::SilecsException(__FILE__, __LINE__, Silecs::PARAM_UNKNOWN_DEVICE_NAME, label);
-    }
-
-    std::map<std::string, SilecsWrapper::Device*>& getDeviceMap()
-    {
-        return _deviceMap;
-    }
-    
-    /*!
-     * \brief Get pointer to device testDevice1.
-     */
-    SilecsWrapper::Device* getTestDevice1()
-    {
-        return _deviceMap["testDevice1"];
-    }
-    
-    /*!
-     * \brief Get pointer to device testDevice2.
-     */
-    SilecsWrapper::Device* getTestDevice2()
-    {
-        return _deviceMap["testDevice2"];
-    }
-    
-private:
-    std::map<std::string, SilecsWrapper::Device*> _deviceMap;
-};
-
-
-} /* namespace AllTypesDU */
-
-#endif /* ALLTYPESDU_H_ */
diff --git a/silecs-codegen/src/xml/test/generated_temp/wrapper/Siemens_Step7Device.h b/silecs-codegen/src/xml/test/generated_temp/wrapper/Siemens_Step7Device.h
deleted file mode 100644
index be5bd8a0ecafcca89b0fae15e2a2f1f4cc20c8d6..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/wrapper/Siemens_Step7Device.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/* Copyright CERN 2015
- *
- * WARNING: This code is automatically generated from your SILECS deploy unit document.
- * You should never modify the content of this file as it would break consistency.
- * Furthermore, any changes will be overwritten in the next code generation.
- * Any modification shall be done using the SILECS development environment
- * and regenerating this source code.
- */
-
-#ifndef ALLTYPESDU_H_
-#define ALLTYPESDU_H_
-
-#include <silecs-communication/interface/equipment/SilecsCluster.h>
-#include <silecs-communication/wrapper/DeployUnit.h>
-#include <silecs-communication/wrapper/Design.h>
-
-#include "AllTypes.h"
-
-namespace AllTypesDU
-{
-
-typedef SilecsWrapper::DeployConfig DeployConfig;
-typedef SilecsWrapper::DesignConfig DesignConfig;
-
-class DeployUnit : public SilecsWrapper::DeployUnit
-{
-public:
-
-    /*!
-     * \brief Use this method to create/get the unique instance of the Deploy Unit.
-     *
-     * \param logTopics This parameter can be used to enable/disable log topics
-     * valid topics are ERROR[,INFO,DEBUG,SETUP,ALLOC,RECV,SEND,COMM,DATA,LOCK].
-     *
-     * \param globalConfig This parameter can be used to pass different parameters to
-     * the library. I.e. enabling automatic connection.
-     */
-    static DeployUnit* getInstance(const std::string& logTopics = "",
-            const SilecsWrapper::DeployConfig& globalConfig = SilecsWrapper::DeployConfig())
-    {
-        if (_instance == NULL)
-        {
-            _instance = new DeployUnit(logTopics, globalConfig);
-        }
-        else
-        {
-            if (logTopics.empty() == false)
-            {
-                _instance->getService()->setLogTopics(logTopics);
-            }
-        }
-        return dynamic_cast<DeployUnit*>(_instance);
-    }
-    
-    /*!
-     * \brief Use this method to create/get the unique instance of the Deploy Unit.
-     *
-     * \param globalConfig This parameter can be used to pass different parameters to
-     * the library. I.e. enabling automatic connection.
-     */
-    static DeployUnit* getInstance(const SilecsWrapper::DeployConfig& globalConfig)
-    {
-        return getInstance("", globalConfig);
-    }
-    
-    /*!
-     * \brief Return pointer to the deployed design AllTypes.
-     */
-    AllTypes::Design* getAllTypes()
-    {
-        return _AllTypes;
-    }
-
-private:
-
-    AllTypes::Design* _AllTypes;
-
-    DeployUnit(const std::string& logTopics, const SilecsWrapper::DeployConfig& globalConfig) :
-                    SilecsWrapper::DeployUnit("AllTypesDU", "0.1.0", logTopics, globalConfig)
-    {
-        // Construct Design AllTypes
-        _AllTypes = new AllTypes::Design((SilecsWrapper::DeployUnit*) this);
-        
-    }
-    
-    ~DeployUnit()
-    {
-        delete _AllTypes;
-    }
-};
-
-
-class Controller : public SilecsWrapper::Controller
-{
-public:
-    Controller(SilecsWrapper::Design *design, const std::string parameterFile) :
-                    SilecsWrapper::Controller("Siemens_Step7Device", "", design, parameterFile)
-    {
-            _deviceMap.insert(std::pair<std::string, SilecsWrapper::Device*>("testDevice1", new SilecsWrapper::Device("testDevice1", this)));
-            _deviceMap.insert(std::pair<std::string, SilecsWrapper::Device*>("testDevice2", new SilecsWrapper::Device("testDevice2", this)));
-    }
-
-    ~Controller()
-    {
-        map<std::string, SilecsWrapper::Device*>::iterator it;
-        for (it = _deviceMap.begin(); it != _deviceMap.end(); it++)
-        {
-            delete it->second;
-        }
-    }
-
-    /*!
-     * \brief Return pointer to the requested device.
-     * \param label Device label.
-     */
-    SilecsWrapper::Device* getDevice(const std::string& label)
-    {
-        if (_deviceMap.find(label) != _deviceMap.end())
-        {
-            return _deviceMap[label];
-        }
-        throw Silecs::SilecsException(__FILE__, __LINE__, Silecs::PARAM_UNKNOWN_DEVICE_NAME, label);
-    }
-
-    std::map<std::string, SilecsWrapper::Device*>& getDeviceMap()
-    {
-        return _deviceMap;
-    }
-    
-    /*!
-     * \brief Get pointer to device testDevice1.
-     */
-    SilecsWrapper::Device* getTestDevice1()
-    {
-        return _deviceMap["testDevice1"];
-    }
-    
-    /*!
-     * \brief Get pointer to device testDevice2.
-     */
-    SilecsWrapper::Device* getTestDevice2()
-    {
-        return _deviceMap["testDevice2"];
-    }
-    
-private:
-    std::map<std::string, SilecsWrapper::Device*> _deviceMap;
-};
-
-
-} /* namespace AllTypesDU */
-
-#endif /* ALLTYPESDU_H_ */
diff --git a/silecs-codegen/src/xml/test/generated_temp/wrapper/Siemens_TiaBlock.h b/silecs-codegen/src/xml/test/generated_temp/wrapper/Siemens_TiaBlock.h
deleted file mode 100644
index 63877a39a230d8894c569d4de058e6b2c3273c70..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/wrapper/Siemens_TiaBlock.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/* Copyright CERN 2015
- *
- * WARNING: This code is automatically generated from your SILECS deploy unit document.
- * You should never modify the content of this file as it would break consistency.
- * Furthermore, any changes will be overwritten in the next code generation.
- * Any modification shall be done using the SILECS development environment
- * and regenerating this source code.
- */
-
-#ifndef ALLTYPESDU_H_
-#define ALLTYPESDU_H_
-
-#include <silecs-communication/interface/equipment/SilecsCluster.h>
-#include <silecs-communication/wrapper/DeployUnit.h>
-#include <silecs-communication/wrapper/Design.h>
-
-#include "AllTypes.h"
-
-namespace AllTypesDU
-{
-
-typedef SilecsWrapper::DeployConfig DeployConfig;
-typedef SilecsWrapper::DesignConfig DesignConfig;
-
-class DeployUnit : public SilecsWrapper::DeployUnit
-{
-public:
-
-    /*!
-     * \brief Use this method to create/get the unique instance of the Deploy Unit.
-     *
-     * \param logTopics This parameter can be used to enable/disable log topics
-     * valid topics are ERROR[,INFO,DEBUG,SETUP,ALLOC,RECV,SEND,COMM,DATA,LOCK].
-     *
-     * \param globalConfig This parameter can be used to pass different parameters to
-     * the library. I.e. enabling automatic connection.
-     */
-    static DeployUnit* getInstance(const std::string& logTopics = "",
-            const SilecsWrapper::DeployConfig& globalConfig = SilecsWrapper::DeployConfig())
-    {
-        if (_instance == NULL)
-        {
-            _instance = new DeployUnit(logTopics, globalConfig);
-        }
-        else
-        {
-            if (logTopics.empty() == false)
-            {
-                _instance->getService()->setLogTopics(logTopics);
-            }
-        }
-        return dynamic_cast<DeployUnit*>(_instance);
-    }
-    
-    /*!
-     * \brief Use this method to create/get the unique instance of the Deploy Unit.
-     *
-     * \param globalConfig This parameter can be used to pass different parameters to
-     * the library. I.e. enabling automatic connection.
-     */
-    static DeployUnit* getInstance(const SilecsWrapper::DeployConfig& globalConfig)
-    {
-        return getInstance("", globalConfig);
-    }
-    
-    /*!
-     * \brief Return pointer to the deployed design AllTypes.
-     */
-    AllTypes::Design* getAllTypes()
-    {
-        return _AllTypes;
-    }
-
-private:
-
-    AllTypes::Design* _AllTypes;
-
-    DeployUnit(const std::string& logTopics, const SilecsWrapper::DeployConfig& globalConfig) :
-                    SilecsWrapper::DeployUnit("AllTypesDU", "0.1.0", logTopics, globalConfig)
-    {
-        // Construct Design AllTypes
-        _AllTypes = new AllTypes::Design((SilecsWrapper::DeployUnit*) this);
-        
-    }
-    
-    ~DeployUnit()
-    {
-        delete _AllTypes;
-    }
-};
-
-
-class Controller : public SilecsWrapper::Controller
-{
-public:
-    Controller(SilecsWrapper::Design *design, const std::string parameterFile) :
-                    SilecsWrapper::Controller("Siemens_TiaBlock", "", design, parameterFile)
-    {
-            _deviceMap.insert(std::pair<std::string, SilecsWrapper::Device*>("testDevice1", new SilecsWrapper::Device("testDevice1", this)));
-            _deviceMap.insert(std::pair<std::string, SilecsWrapper::Device*>("testDevice2", new SilecsWrapper::Device("testDevice2", this)));
-    }
-
-    ~Controller()
-    {
-        map<std::string, SilecsWrapper::Device*>::iterator it;
-        for (it = _deviceMap.begin(); it != _deviceMap.end(); it++)
-        {
-            delete it->second;
-        }
-    }
-
-    /*!
-     * \brief Return pointer to the requested device.
-     * \param label Device label.
-     */
-    SilecsWrapper::Device* getDevice(const std::string& label)
-    {
-        if (_deviceMap.find(label) != _deviceMap.end())
-        {
-            return _deviceMap[label];
-        }
-        throw Silecs::SilecsException(__FILE__, __LINE__, Silecs::PARAM_UNKNOWN_DEVICE_NAME, label);
-    }
-
-    std::map<std::string, SilecsWrapper::Device*>& getDeviceMap()
-    {
-        return _deviceMap;
-    }
-    
-    /*!
-     * \brief Get pointer to device testDevice1.
-     */
-    SilecsWrapper::Device* getTestDevice1()
-    {
-        return _deviceMap["testDevice1"];
-    }
-    
-    /*!
-     * \brief Get pointer to device testDevice2.
-     */
-    SilecsWrapper::Device* getTestDevice2()
-    {
-        return _deviceMap["testDevice2"];
-    }
-    
-private:
-    std::map<std::string, SilecsWrapper::Device*> _deviceMap;
-};
-
-
-} /* namespace AllTypesDU */
-
-#endif /* ALLTYPESDU_H_ */
diff --git a/silecs-codegen/src/xml/test/generated_temp/wrapper/Siemens_TiaDevice.h b/silecs-codegen/src/xml/test/generated_temp/wrapper/Siemens_TiaDevice.h
deleted file mode 100644
index e6a302939e50d1631e9cd16bc3601015035ef975..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/wrapper/Siemens_TiaDevice.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/* Copyright CERN 2015
- *
- * WARNING: This code is automatically generated from your SILECS deploy unit document.
- * You should never modify the content of this file as it would break consistency.
- * Furthermore, any changes will be overwritten in the next code generation.
- * Any modification shall be done using the SILECS development environment
- * and regenerating this source code.
- */
-
-#ifndef ALLTYPESDU_H_
-#define ALLTYPESDU_H_
-
-#include <silecs-communication/interface/equipment/SilecsCluster.h>
-#include <silecs-communication/wrapper/DeployUnit.h>
-#include <silecs-communication/wrapper/Design.h>
-
-#include "AllTypes.h"
-
-namespace AllTypesDU
-{
-
-typedef SilecsWrapper::DeployConfig DeployConfig;
-typedef SilecsWrapper::DesignConfig DesignConfig;
-
-class DeployUnit : public SilecsWrapper::DeployUnit
-{
-public:
-
-    /*!
-     * \brief Use this method to create/get the unique instance of the Deploy Unit.
-     *
-     * \param logTopics This parameter can be used to enable/disable log topics
-     * valid topics are ERROR[,INFO,DEBUG,SETUP,ALLOC,RECV,SEND,COMM,DATA,LOCK].
-     *
-     * \param globalConfig This parameter can be used to pass different parameters to
-     * the library. I.e. enabling automatic connection.
-     */
-    static DeployUnit* getInstance(const std::string& logTopics = "",
-            const SilecsWrapper::DeployConfig& globalConfig = SilecsWrapper::DeployConfig())
-    {
-        if (_instance == NULL)
-        {
-            _instance = new DeployUnit(logTopics, globalConfig);
-        }
-        else
-        {
-            if (logTopics.empty() == false)
-            {
-                _instance->getService()->setLogTopics(logTopics);
-            }
-        }
-        return dynamic_cast<DeployUnit*>(_instance);
-    }
-    
-    /*!
-     * \brief Use this method to create/get the unique instance of the Deploy Unit.
-     *
-     * \param globalConfig This parameter can be used to pass different parameters to
-     * the library. I.e. enabling automatic connection.
-     */
-    static DeployUnit* getInstance(const SilecsWrapper::DeployConfig& globalConfig)
-    {
-        return getInstance("", globalConfig);
-    }
-    
-    /*!
-     * \brief Return pointer to the deployed design AllTypes.
-     */
-    AllTypes::Design* getAllTypes()
-    {
-        return _AllTypes;
-    }
-
-private:
-
-    AllTypes::Design* _AllTypes;
-
-    DeployUnit(const std::string& logTopics, const SilecsWrapper::DeployConfig& globalConfig) :
-                    SilecsWrapper::DeployUnit("AllTypesDU", "0.1.0", logTopics, globalConfig)
-    {
-        // Construct Design AllTypes
-        _AllTypes = new AllTypes::Design((SilecsWrapper::DeployUnit*) this);
-        
-    }
-    
-    ~DeployUnit()
-    {
-        delete _AllTypes;
-    }
-};
-
-
-class Controller : public SilecsWrapper::Controller
-{
-public:
-    Controller(SilecsWrapper::Design *design, const std::string parameterFile) :
-                    SilecsWrapper::Controller("Siemens_TiaDevice", "", design, parameterFile)
-    {
-            _deviceMap.insert(std::pair<std::string, SilecsWrapper::Device*>("testDevice1", new SilecsWrapper::Device("testDevice1", this)));
-            _deviceMap.insert(std::pair<std::string, SilecsWrapper::Device*>("testDevice2", new SilecsWrapper::Device("testDevice2", this)));
-    }
-
-    ~Controller()
-    {
-        map<std::string, SilecsWrapper::Device*>::iterator it;
-        for (it = _deviceMap.begin(); it != _deviceMap.end(); it++)
-        {
-            delete it->second;
-        }
-    }
-
-    /*!
-     * \brief Return pointer to the requested device.
-     * \param label Device label.
-     */
-    SilecsWrapper::Device* getDevice(const std::string& label)
-    {
-        if (_deviceMap.find(label) != _deviceMap.end())
-        {
-            return _deviceMap[label];
-        }
-        throw Silecs::SilecsException(__FILE__, __LINE__, Silecs::PARAM_UNKNOWN_DEVICE_NAME, label);
-    }
-
-    std::map<std::string, SilecsWrapper::Device*>& getDeviceMap()
-    {
-        return _deviceMap;
-    }
-    
-    /*!
-     * \brief Get pointer to device testDevice1.
-     */
-    SilecsWrapper::Device* getTestDevice1()
-    {
-        return _deviceMap["testDevice1"];
-    }
-    
-    /*!
-     * \brief Get pointer to device testDevice2.
-     */
-    SilecsWrapper::Device* getTestDevice2()
-    {
-        return _deviceMap["testDevice2"];
-    }
-    
-private:
-    std::map<std::string, SilecsWrapper::Device*> _deviceMap;
-};
-
-
-} /* namespace AllTypesDU */
-
-#endif /* ALLTYPESDU_H_ */
diff --git a/silecs-codegen/src/xml/test/generated_temp/wrapper/Virtual_SiemensBlock.h b/silecs-codegen/src/xml/test/generated_temp/wrapper/Virtual_SiemensBlock.h
deleted file mode 100644
index 1681d8b22ba04770f1b3adf8cbd197212341b0dc..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/wrapper/Virtual_SiemensBlock.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/* Copyright CERN 2015
- *
- * WARNING: This code is automatically generated from your SILECS deploy unit document.
- * You should never modify the content of this file as it would break consistency.
- * Furthermore, any changes will be overwritten in the next code generation.
- * Any modification shall be done using the SILECS development environment
- * and regenerating this source code.
- */
-
-#ifndef ALLTYPESDU_H_
-#define ALLTYPESDU_H_
-
-#include <silecs-communication/interface/equipment/SilecsCluster.h>
-#include <silecs-communication/wrapper/DeployUnit.h>
-#include <silecs-communication/wrapper/Design.h>
-
-#include "AllTypes.h"
-
-namespace AllTypesDU
-{
-
-typedef SilecsWrapper::DeployConfig DeployConfig;
-typedef SilecsWrapper::DesignConfig DesignConfig;
-
-class DeployUnit : public SilecsWrapper::DeployUnit
-{
-public:
-
-    /*!
-     * \brief Use this method to create/get the unique instance of the Deploy Unit.
-     *
-     * \param logTopics This parameter can be used to enable/disable log topics
-     * valid topics are ERROR[,INFO,DEBUG,SETUP,ALLOC,RECV,SEND,COMM,DATA,LOCK].
-     *
-     * \param globalConfig This parameter can be used to pass different parameters to
-     * the library. I.e. enabling automatic connection.
-     */
-    static DeployUnit* getInstance(const std::string& logTopics = "",
-            const SilecsWrapper::DeployConfig& globalConfig = SilecsWrapper::DeployConfig())
-    {
-        if (_instance == NULL)
-        {
-            _instance = new DeployUnit(logTopics, globalConfig);
-        }
-        else
-        {
-            if (logTopics.empty() == false)
-            {
-                _instance->getService()->setLogTopics(logTopics);
-            }
-        }
-        return dynamic_cast<DeployUnit*>(_instance);
-    }
-    
-    /*!
-     * \brief Use this method to create/get the unique instance of the Deploy Unit.
-     *
-     * \param globalConfig This parameter can be used to pass different parameters to
-     * the library. I.e. enabling automatic connection.
-     */
-    static DeployUnit* getInstance(const SilecsWrapper::DeployConfig& globalConfig)
-    {
-        return getInstance("", globalConfig);
-    }
-    
-    /*!
-     * \brief Return pointer to the deployed design AllTypes.
-     */
-    AllTypes::Design* getAllTypes()
-    {
-        return _AllTypes;
-    }
-
-private:
-
-    AllTypes::Design* _AllTypes;
-
-    DeployUnit(const std::string& logTopics, const SilecsWrapper::DeployConfig& globalConfig) :
-                    SilecsWrapper::DeployUnit("AllTypesDU", "0.1.0", logTopics, globalConfig)
-    {
-        // Construct Design AllTypes
-        _AllTypes = new AllTypes::Design((SilecsWrapper::DeployUnit*) this);
-        
-    }
-    
-    ~DeployUnit()
-    {
-        delete _AllTypes;
-    }
-};
-
-
-class Controller : public SilecsWrapper::Controller
-{
-public:
-    Controller(SilecsWrapper::Design *design, const std::string parameterFile) :
-                    SilecsWrapper::Controller("Virtual_SiemensBlock", "", design, parameterFile)
-    {
-            _deviceMap.insert(std::pair<std::string, SilecsWrapper::Device*>("testDevice1", new SilecsWrapper::Device("testDevice1", this)));
-            _deviceMap.insert(std::pair<std::string, SilecsWrapper::Device*>("testDevice2", new SilecsWrapper::Device("testDevice2", this)));
-    }
-
-    ~Controller()
-    {
-        map<std::string, SilecsWrapper::Device*>::iterator it;
-        for (it = _deviceMap.begin(); it != _deviceMap.end(); it++)
-        {
-            delete it->second;
-        }
-    }
-
-    /*!
-     * \brief Return pointer to the requested device.
-     * \param label Device label.
-     */
-    SilecsWrapper::Device* getDevice(const std::string& label)
-    {
-        if (_deviceMap.find(label) != _deviceMap.end())
-        {
-            return _deviceMap[label];
-        }
-        throw Silecs::SilecsException(__FILE__, __LINE__, Silecs::PARAM_UNKNOWN_DEVICE_NAME, label);
-    }
-
-    std::map<std::string, SilecsWrapper::Device*>& getDeviceMap()
-    {
-        return _deviceMap;
-    }
-    
-    /*!
-     * \brief Get pointer to device testDevice1.
-     */
-    SilecsWrapper::Device* getTestDevice1()
-    {
-        return _deviceMap["testDevice1"];
-    }
-    
-    /*!
-     * \brief Get pointer to device testDevice2.
-     */
-    SilecsWrapper::Device* getTestDevice2()
-    {
-        return _deviceMap["testDevice2"];
-    }
-    
-private:
-    std::map<std::string, SilecsWrapper::Device*> _deviceMap;
-};
-
-
-} /* namespace AllTypesDU */
-
-#endif /* ALLTYPESDU_H_ */
diff --git a/silecs-codegen/src/xml/test/generated_temp/wrapper/Virtual_SiemensDevice.h b/silecs-codegen/src/xml/test/generated_temp/wrapper/Virtual_SiemensDevice.h
deleted file mode 100644
index 8b1ef2728a190215f7d3a31e8fba210523c18be4..0000000000000000000000000000000000000000
--- a/silecs-codegen/src/xml/test/generated_temp/wrapper/Virtual_SiemensDevice.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/* Copyright CERN 2015
- *
- * WARNING: This code is automatically generated from your SILECS deploy unit document.
- * You should never modify the content of this file as it would break consistency.
- * Furthermore, any changes will be overwritten in the next code generation.
- * Any modification shall be done using the SILECS development environment
- * and regenerating this source code.
- */
-
-#ifndef ALLTYPESDU_H_
-#define ALLTYPESDU_H_
-
-#include <silecs-communication/interface/equipment/SilecsCluster.h>
-#include <silecs-communication/wrapper/DeployUnit.h>
-#include <silecs-communication/wrapper/Design.h>
-
-#include "AllTypes.h"
-
-namespace AllTypesDU
-{
-
-typedef SilecsWrapper::DeployConfig DeployConfig;
-typedef SilecsWrapper::DesignConfig DesignConfig;
-
-class DeployUnit : public SilecsWrapper::DeployUnit
-{
-public:
-
-    /*!
-     * \brief Use this method to create/get the unique instance of the Deploy Unit.
-     *
-     * \param logTopics This parameter can be used to enable/disable log topics
-     * valid topics are ERROR[,INFO,DEBUG,SETUP,ALLOC,RECV,SEND,COMM,DATA,LOCK].
-     *
-     * \param globalConfig This parameter can be used to pass different parameters to
-     * the library. I.e. enabling automatic connection.
-     */
-    static DeployUnit* getInstance(const std::string& logTopics = "",
-            const SilecsWrapper::DeployConfig& globalConfig = SilecsWrapper::DeployConfig())
-    {
-        if (_instance == NULL)
-        {
-            _instance = new DeployUnit(logTopics, globalConfig);
-        }
-        else
-        {
-            if (logTopics.empty() == false)
-            {
-                _instance->getService()->setLogTopics(logTopics);
-            }
-        }
-        return dynamic_cast<DeployUnit*>(_instance);
-    }
-    
-    /*!
-     * \brief Use this method to create/get the unique instance of the Deploy Unit.
-     *
-     * \param globalConfig This parameter can be used to pass different parameters to
-     * the library. I.e. enabling automatic connection.
-     */
-    static DeployUnit* getInstance(const SilecsWrapper::DeployConfig& globalConfig)
-    {
-        return getInstance("", globalConfig);
-    }
-    
-    /*!
-     * \brief Return pointer to the deployed design AllTypes.
-     */
-    AllTypes::Design* getAllTypes()
-    {
-        return _AllTypes;
-    }
-
-private:
-
-    AllTypes::Design* _AllTypes;
-
-    DeployUnit(const std::string& logTopics, const SilecsWrapper::DeployConfig& globalConfig) :
-                    SilecsWrapper::DeployUnit("AllTypesDU", "0.1.0", logTopics, globalConfig)
-    {
-        // Construct Design AllTypes
-        _AllTypes = new AllTypes::Design((SilecsWrapper::DeployUnit*) this);
-        
-    }
-    
-    ~DeployUnit()
-    {
-        delete _AllTypes;
-    }
-};
-
-
-class Controller : public SilecsWrapper::Controller
-{
-public:
-    Controller(SilecsWrapper::Design *design, const std::string parameterFile) :
-                    SilecsWrapper::Controller("Virtual_SiemensDevice", "", design, parameterFile)
-    {
-            _deviceMap.insert(std::pair<std::string, SilecsWrapper::Device*>("testDevice1", new SilecsWrapper::Device("testDevice1", this)));
-            _deviceMap.insert(std::pair<std::string, SilecsWrapper::Device*>("testDevice2", new SilecsWrapper::Device("testDevice2", this)));
-    }
-
-    ~Controller()
-    {
-        map<std::string, SilecsWrapper::Device*>::iterator it;
-        for (it = _deviceMap.begin(); it != _deviceMap.end(); it++)
-        {
-            delete it->second;
-        }
-    }
-
-    /*!
-     * \brief Return pointer to the requested device.
-     * \param label Device label.
-     */
-    SilecsWrapper::Device* getDevice(const std::string& label)
-    {
-        if (_deviceMap.find(label) != _deviceMap.end())
-        {
-            return _deviceMap[label];
-        }
-        throw Silecs::SilecsException(__FILE__, __LINE__, Silecs::PARAM_UNKNOWN_DEVICE_NAME, label);
-    }
-
-    std::map<std::string, SilecsWrapper::Device*>& getDeviceMap()
-    {
-        return _deviceMap;
-    }
-    
-    /*!
-     * \brief Get pointer to device testDevice1.
-     */
-    SilecsWrapper::Device* getTestDevice1()
-    {
-        return _deviceMap["testDevice1"];
-    }
-    
-    /*!
-     * \brief Get pointer to device testDevice2.
-     */
-    SilecsWrapper::Device* getTestDevice2()
-    {
-        return _deviceMap["testDevice2"];
-    }
-    
-private:
-    std::map<std::string, SilecsWrapper::Device*> _deviceMap;
-};
-
-
-} /* namespace AllTypesDU */
-
-#endif /* ALLTYPESDU_H_ */
diff --git a/silecs-communication-cpp/Makefile.dep b/silecs-communication-cpp/Makefile.dep
index 1cf11595b77d9147920869e190b384262cafc13b..a0318fd8395f20d30bc860118669f08b8872dc1d 100644
--- a/silecs-communication-cpp/Makefile.dep
+++ b/silecs-communication-cpp/Makefile.dep
@@ -1,7 +1,7 @@
 BOOST_VERSION ?= 1.54.0
 
-LIBXML_PATH = /usr/include/libxml2/
-SNAP7_BASE = ../snap7/snap7-full
+LIBXML_PATH ?= /usr/include/libxml2/
+SNAP7_BASE ?= ../snap7/snap7-full
 BOOST_HOME ?= /opt/gsi/3rdparty/boost/$(BOOST_VERSION)
 
 DEPENDENT_COMPILER_OPTIONS += -I$(LIBXML_PATH)
diff --git a/silecs-communication-cpp/jenkins.sh b/silecs-communication-cpp/jenkins.sh
new file mode 100755
index 0000000000000000000000000000000000000000..2b5218be175ab60d0135dee574c8e4281b82503d
--- /dev/null
+++ b/silecs-communication-cpp/jenkins.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+#test2
+export COMMON_MAKE_PATH="$WORKSPACE/../../generics/generic-makefiles"
+export SNAP7_BASE="$WORKSPACE/../snap7/snap7-full"
+export BOOST_HOME="$WORKSPACE/../../generics/boost_1.54.0/boost/1.54.0"
+make all CPU=x86_64 -j4 
diff --git a/silecs-communication-cpp/releaseSilecs.sh b/silecs-communication-cpp/releaseSilecs.sh
index 04f6dabda19323d3f967aa5ed2a263335212f7d6..76a5cff66bdc5b1a03d8ff3fc646c6cd61a89bfd 100755
--- a/silecs-communication-cpp/releaseSilecs.sh
+++ b/silecs-communication-cpp/releaseSilecs.sh
@@ -77,7 +77,6 @@ patch()
         INSTALL_DIR=${RELEASE_DIR_BASE}/${PACKAGE}/${NEW_VERSION}
         BASE_DIR=${RELEASE_DIR_BASE}/${PACKAGE}/${BASE_VERSION}
         checkFolderExists ${BASE_DIR}
-        checkFolderExists ${BASE_DIR}
         checkFolderExists ${INSTALL_DIR}
         if [ "$PACKAGE" == "$PACKAGE_TO_PATCH" ]; then
             if [ -d ${INSTALL_DIR} ]; then
diff --git a/silecs-communication-cpp/src/silecs-communication/interface/communication/SNAP7Connection.cpp b/silecs-communication-cpp/src/silecs-communication/interface/communication/SNAP7Connection.cpp
index 7276087145f64dd1071ff685e566673af86cdb5a..ea562aacb40311a201aa25a30f4013635cea89d0 100644
--- a/silecs-communication-cpp/src/silecs-communication/interface/communication/SNAP7Connection.cpp
+++ b/silecs-communication-cpp/src/silecs-communication/interface/communication/SNAP7Connection.cpp
@@ -198,4 +198,37 @@ namespace Silecs
 		return 0;
 	}
 
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//
+	//Puts the CPU in RUN mode performing a COLD START.
+	int SNAP7Connection::coldRestart(PLC* thePLC)
+	{
+		if(doOpen(thePLC))
+		{
+			Lock lock(writeMux_);
+			int error = Cli_PlcColdStart(sendClient_);
+			if(error)
+				throw SilecsException(__FILE__, __LINE__, UNEXPECTED_ERROR," SNAP7 Error: " + getSNAP7ErrorMessage(error));
+
+		}
+		return 0;
+	}
+
+	//Puts the CPU in STOP mode.
+		int SNAP7Connection::plcStop(PLC* thePLC)
+		{
+			if(doOpen(thePLC))
+			{
+				Lock lock(writeMux_);
+				int error = Cli_PlcStop(sendClient_);
+				if(error)
+					throw SilecsException(__FILE__, __LINE__, UNEXPECTED_ERROR," SNAP7 Error: " + getSNAP7ErrorMessage(error));
+
+			}
+			return 0;
+		}
+//
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+
 } // namespace
diff --git a/silecs-communication-cpp/src/silecs-communication/interface/communication/SNAP7Connection.h b/silecs-communication-cpp/src/silecs-communication/interface/communication/SNAP7Connection.h
index 5d14818f47bade0cf3378e471f6139005dbc8e6a..740dc9bd4cde83420920c53c20383dd6d5093dff 100644
--- a/silecs-communication-cpp/src/silecs-communication/interface/communication/SNAP7Connection.h
+++ b/silecs-communication-cpp/src/silecs-communication/interface/communication/SNAP7Connection.h
@@ -43,6 +43,10 @@ namespace Silecs
  		int readData(PLC* thePLC, unsigned long DBn, unsigned long offset, unsigned long size, unsigned char* pBuffer);
  		int writeData(PLC* thePLC, unsigned long DBn, unsigned long offset, unsigned long size, unsigned char* pBuffer);
 
+ 		//Extension Silecs methods
+ 		int coldRestart(PLC* thePLC);
+ 		int plcStop(PLC* thePLC);
+
 	private:
  		S7Object recvClient_;
         S7Object sendClient_;
diff --git a/silecs-communication-cpp/src/silecs-communication/interface/communication/SilecsConnection.cpp b/silecs-communication-cpp/src/silecs-communication/interface/communication/SilecsConnection.cpp
index 419e0e3a7ee2d11004cb14597a86f452ebb134b8..d89db59b1108b9658020d1699905dbca78af283a 100644
--- a/silecs-communication-cpp/src/silecs-communication/interface/communication/SilecsConnection.cpp
+++ b/silecs-communication-cpp/src/silecs-communication/interface/communication/SilecsConnection.cpp
@@ -95,7 +95,7 @@ namespace Silecs
 	//------------------------------------------------------------------------------------------------------------------------------------------------
 	bool Connection::doOpen(PLC* thePLC)
 	{
-		LOG((COMM|DIAG)) << "Start attempt to open connection ...";
+		//LOG((COMM|DIAG)) << "Start attempt to open connection ..."; .. commented, seem like this creates to many log-entries for KIBANA
 		bool justConnected = false;
 
 		{
@@ -263,6 +263,20 @@ namespace Silecs
         return -1;
     }
 
+    //PERFORM COLD RESTART
+    int Connection::coldRestart(PLC* thePLC)
+        {
+            throw SilecsException(__FILE__, __LINE__, DIAG_PLC_REPORT_NOT_SUPPORTED, thePLC->getName());
+            return -1;
+        }
+
+    //PERFORM COLD RESTART
+       int Connection::plcStop(PLC* thePLC)
+           {
+               throw SilecsException(__FILE__, __LINE__, DIAG_PLC_REPORT_NOT_SUPPORTED, thePLC->getName());
+               return -1;
+           }
+
 
 	//-------------------------------------------------------------------------------------------------------------------
 	bool Connection::checkError(PLC* thePLC, int err, bool retry)
diff --git a/silecs-communication-cpp/src/silecs-communication/interface/communication/SilecsConnection.h b/silecs-communication-cpp/src/silecs-communication/interface/communication/SilecsConnection.h
index ca2319a0fcf80d0ce325c9f395eda5062c6ee683..ed9d0177af471602dd917d46873d8f04142ea5ba 100644
--- a/silecs-communication-cpp/src/silecs-communication/interface/communication/SilecsConnection.h
+++ b/silecs-communication-cpp/src/silecs-communication/interface/communication/SilecsConnection.h
@@ -89,6 +89,9 @@ namespace Silecs
         virtual int readUnitStatus(PLC* thePLC, UnitStatusType& dataStruct);
         virtual int readCPUInfo(PLC* thePLC, CPUInfoType& dataStruct);
         virtual int readCPInfo(PLC* thePLC, CPInfoType& dataStruct);
+        //SET PLC COLD RESTART
+        virtual int coldRestart(PLC* thePLC);
+        virtual int plcStop(PLC* thePLC);
 
 	protected:
 		friend class Cluster;
diff --git a/silecs-communication-cpp/src/silecs-communication/interface/equipment/SilecsPLC.cpp b/silecs-communication-cpp/src/silecs-communication/interface/equipment/SilecsPLC.cpp
index 4db7910b03ee37d53c9196ecf383f540a8ce0de0..48580fbdbf80e96cdcd8f2ea822ea3d425f2d76c 100644
--- a/silecs-communication-cpp/src/silecs-communication/interface/equipment/SilecsPLC.cpp
+++ b/silecs-communication-cpp/src/silecs-communication/interface/equipment/SilecsPLC.cpp
@@ -270,8 +270,22 @@ namespace Silecs
         {
             return getConnection()->readCPInfo(this, dataStruct);
         }
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//
+        //Puts the CPU in RUN mode performing a COLD START.
+        int PLC::sendColdRestart()
+        {
+        	return getConnection()->coldRestart(this);
+        	//return getConnection()->coldRestart();
+        }
 
-
+        int PLC::sendPlcStop()
+                {
+                	return getConnection()->plcStop(this);
+                	//return getConnection()->coldRestart();
+                }
+//
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 		int PLC::recv(std::string blockName)
 		{
 			//Synchronous data receive
diff --git a/silecs-communication-cpp/src/silecs-communication/interface/equipment/SilecsPLC.h b/silecs-communication-cpp/src/silecs-communication/interface/equipment/SilecsPLC.h
index 9f0b73d6f6555c285e024f1feb97a847b4901957..43f513e06a638b703046a8b4baad57620aa8e6b5 100644
--- a/silecs-communication-cpp/src/silecs-communication/interface/equipment/SilecsPLC.h
+++ b/silecs-communication-cpp/src/silecs-communication/interface/equipment/SilecsPLC.h
@@ -270,6 +270,9 @@ namespace Silecs
         int recvCPUInfo(CPUInfoType& dataStruct);
         int recvCPInfo(CPInfoType& dataStruct);
 
+        //Cold RESTART
+        int sendColdRestart();
+        int sendPlcStop();
         /*!
          * \brief Acquires one particular registers block of all devices of that PLC.
          * The method tries to (re)connect the PLC if the connection is not established yet or unexpectedly interrupted (network failure, PLC down, etc.).