diff --git a/ArchitectureTests/thread/ObjectPriorityQueueTest.cpp b/ArchitectureTests/thread/ObjectPriorityQueueTest.cpp
index be93926e88b37bc8b5fa9434145c7f8756c481d5..813bf17602dff6ad024681bb004c800f3d9727d7 100644
--- a/ArchitectureTests/thread/ObjectPriorityQueueTest.cpp
+++ b/ArchitectureTests/thread/ObjectPriorityQueueTest.cpp
@@ -1,6 +1,6 @@
 /*
  *	ObjectPriorityQueueTest.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ArchitectureTests/thread/ObjectPriorityQueueTest.h b/ArchitectureTests/thread/ObjectPriorityQueueTest.h
index 4740a10c64c3c0eb474df6e67f044629fe6f295d..a8c9948cab7c33bab0a0715483189f97ecdb43ba 100644
--- a/ArchitectureTests/thread/ObjectPriorityQueueTest.h
+++ b/ArchitectureTests/thread/ObjectPriorityQueueTest.h
@@ -1,6 +1,6 @@
 /*
  *	ObjectPriorityQueueTest.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ArchitectureTests/thread/ObjectQueueTest.cpp b/ArchitectureTests/thread/ObjectQueueTest.cpp
index 07c5337c4cd09eb6024383ec79f87445a8de130d..f07a397e3edb562889ebc30ea1994235a252cdbc 100644
--- a/ArchitectureTests/thread/ObjectQueueTest.cpp
+++ b/ArchitectureTests/thread/ObjectQueueTest.cpp
@@ -1,6 +1,6 @@
 /*
  *	ObjectQueueTest.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ArchitectureTests/thread/ObjectQueueTest.h b/ArchitectureTests/thread/ObjectQueueTest.h
index 638847f034beb0ee721d8f3c0105111f86c1b6fb..3f5b9a9571bdab527e84d83576fce5497b9ab49a 100644
--- a/ArchitectureTests/thread/ObjectQueueTest.h
+++ b/ArchitectureTests/thread/ObjectQueueTest.h
@@ -1,6 +1,6 @@
 /*
  *	ObjectQueueTest.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ArchitectureTests/utility/HashMapTest.cpp b/ArchitectureTests/utility/HashMapTest.cpp
index 14129ddd9e68b25143631b7c85fcd5c1800b22b3..7f756e728d12ad26279ef4322c03f1d0c66391ea 100644
--- a/ArchitectureTests/utility/HashMapTest.cpp
+++ b/ArchitectureTests/utility/HashMapTest.cpp
@@ -1,6 +1,6 @@
 /*
  *	HashMapTest.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ArchitectureTests/utility/HashMapTest.h b/ArchitectureTests/utility/HashMapTest.h
index ad421ad8a342b7923128e55b04caadb09eaf3f1d..88b3e0d968a6c36258e48ba5996a03e747a4b1cd 100644
--- a/ArchitectureTests/utility/HashMapTest.h
+++ b/ArchitectureTests/utility/HashMapTest.h
@@ -1,6 +1,6 @@
 /*
  *	HashMapTest.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/CHAOSFramework.xcodeproj/project.pbxproj b/CHAOSFramework.xcodeproj/project.pbxproj
index d167b215290ccc944ac20f68912a962df4dd649a..43a24a7af49363570e483d36db81368126b5637e 100644
--- a/CHAOSFramework.xcodeproj/project.pbxproj
+++ b/CHAOSFramework.xcodeproj/project.pbxproj
@@ -46,6 +46,7 @@
 		32279F8516F8DEAF009EC7B9 /* DataBroker.h in Headers */ = {isa = PBXBuildFile; fileRef = 32279F8316F8DEAF009EC7B9 /* DataBroker.h */; };
 		32279F8B16FA36B6009EC7B9 /* PublisherDataService.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 32279F8916FA36B6009EC7B9 /* PublisherDataService.cpp */; };
 		32279F8C16FA36B6009EC7B9 /* PublisherDataService.h in Headers */ = {isa = PBXBuildFile; fileRef = 32279F8A16FA36B6009EC7B9 /* PublisherDataService.h */; };
+		322884451ADBBA1400CA1F4B /* PropertyCollector.h in Headers */ = {isa = PBXBuildFile; fileRef = 322884441ADBBA1400CA1F4B /* PropertyCollector.h */; };
 		3229700A18BCC6FE0004F70D /* DirectIOServerPublicInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 3229700918BCC6FE0004F70D /* DirectIOServerPublicInterface.h */; };
 		322D990118A95F9200C0864C /* QueryDataConsumer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 322D98FE18A95F9200C0864C /* QueryDataConsumer.cpp */; };
 		322D990218A95F9200C0864C /* QueryDataConsumer.h in Headers */ = {isa = PBXBuildFile; fileRef = 322D98FF18A95F9200C0864C /* QueryDataConsumer.h */; };
@@ -70,6 +71,10 @@
 		3235FDCA1A6FF45600EC83A9 /* ProducerRegisterApi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3235FDC81A6FF45600EC83A9 /* ProducerRegisterApi.cpp */; };
 		3235FDD61A6FF8A800EC83A9 /* MongoDBUnitServerDataAccess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3235FDD41A6FF8A800EC83A9 /* MongoDBUnitServerDataAccess.cpp */; };
 		3235FDD91A6FFA6600EC83A9 /* MongoDBPersistenceDriver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3235FDD71A6FFA6600EC83A9 /* MongoDBPersistenceDriver.cpp */; };
+		32362C1A1ADC0FD2000CA079 /* SetInstanceDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 32362C181ADC0FD2000CA079 /* SetInstanceDescription.cpp */; };
+		32362C1D1ADC0FDF000CA079 /* ControlUnitGroup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 32362C1B1ADC0FDF000CA079 /* ControlUnitGroup.cpp */; };
+		32362C211ADD0C45000CA079 /* SetInstanceDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 32362C1F1ADD0C45000CA079 /* SetInstanceDescription.cpp */; };
+		32362C221ADD0C45000CA079 /* SetInstanceDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 32362C201ADD0C45000CA079 /* SetInstanceDescription.h */; };
 		3244C0C6168CB96B007C802C /* Record.h in Headers */ = {isa = PBXBuildFile; fileRef = 3244C0C5168CB96B007C802C /* Record.h */; };
 		3244D11D15ECC25800FE2F86 /* AlertEventChannel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3244D11B15ECC25800FE2F86 /* AlertEventChannel.cpp */; };
 		3244D11E15ECC25800FE2F86 /* AlertEventChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = 3244D11C15ECC25800FE2F86 /* AlertEventChannel.h */; };
@@ -334,6 +339,14 @@
 		3287F7E717B27621009DD6ED /* DriverManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 326D3A6017B0CD01004601A8 /* DriverManager.h */; };
 		3289F9A5168508460080D93F /* SQLiteEntityDB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3289F9A3168508460080D93F /* SQLiteEntityDB.cpp */; };
 		3289F9A6168508460080D93F /* SQLiteEntityDB.h in Headers */ = {isa = PBXBuildFile; fileRef = 3289F9A4168508460080D93F /* SQLiteEntityDB.h */; };
+		328C872C1ADEA45E0047C79B /* SearchInstancesByUS.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 328C872A1ADEA45E0047C79B /* SearchInstancesByUS.cpp */; };
+		328C872F1ADFC2D60047C79B /* GetInstance.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 328C872D1ADFC2D60047C79B /* GetInstance.cpp */; };
+		328C87321ADFDB9A0047C79B /* SearchInstancesByUS.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 328C87301ADFDB9A0047C79B /* SearchInstancesByUS.cpp */; };
+		328C87331ADFDB9A0047C79B /* SearchInstancesByUS.h in Headers */ = {isa = PBXBuildFile; fileRef = 328C87311ADFDB9A0047C79B /* SearchInstancesByUS.h */; };
+		328C87361ADFDD410047C79B /* GetInstance.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 328C87341ADFDD410047C79B /* GetInstance.cpp */; };
+		328C87371ADFDD410047C79B /* GetInstance.h in Headers */ = {isa = PBXBuildFile; fileRef = 328C87351ADFDD410047C79B /* GetInstance.h */; };
+		328C873A1AE016DC0047C79B /* DeleteInstance.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 328C87381AE016DC0047C79B /* DeleteInstance.cpp */; };
+		328C873E1AE01A590047C79B /* DeleteInstance.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 328C873B1AE01A520047C79B /* DeleteInstance.cpp */; };
 		328CC9D61763CCC7000B30B6 /* AbstractDriver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 328CC9D41763CCC7000B30B6 /* AbstractDriver.cpp */; };
 		328CC9D71763CCC7000B30B6 /* AbstractDriver.h in Headers */ = {isa = PBXBuildFile; fileRef = 328CC9D51763CCC7000B30B6 /* AbstractDriver.h */; };
 		328D0FF11A8A034E001A2001 /* NodeSearch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 328D0FEF1A8A034E001A2001 /* NodeSearch.cpp */; };
@@ -665,6 +678,8 @@
 		32279F8316F8DEAF009EC7B9 /* DataBroker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DataBroker.h; sourceTree = "<group>"; };
 		32279F8916FA36B6009EC7B9 /* PublisherDataService.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PublisherDataService.cpp; sourceTree = "<group>"; };
 		32279F8A16FA36B6009EC7B9 /* PublisherDataService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PublisherDataService.h; sourceTree = "<group>"; };
+		322884431ADBB55400CA1F4B /* Property.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Property.h; sourceTree = "<group>"; };
+		322884441ADBBA1400CA1F4B /* PropertyCollector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PropertyCollector.h; sourceTree = "<group>"; };
 		3229700918BCC6FE0004F70D /* DirectIOServerPublicInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DirectIOServerPublicInterface.h; sourceTree = "<group>"; };
 		322D98FE18A95F9200C0864C /* QueryDataConsumer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; path = QueryDataConsumer.cpp; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
 		322D98FF18A95F9200C0864C /* QueryDataConsumer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QueryDataConsumer.h; sourceTree = "<group>"; };
@@ -703,6 +718,12 @@
 		3235FDD51A6FF8A800EC83A9 /* MongoDBUnitServerDataAccess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MongoDBUnitServerDataAccess.h; sourceTree = "<group>"; };
 		3235FDD71A6FFA6600EC83A9 /* MongoDBPersistenceDriver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MongoDBPersistenceDriver.cpp; sourceTree = "<group>"; };
 		3235FDD81A6FFA6600EC83A9 /* MongoDBPersistenceDriver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MongoDBPersistenceDriver.h; sourceTree = "<group>"; };
+		32362C181ADC0FD2000CA079 /* SetInstanceDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SetInstanceDescription.cpp; sourceTree = "<group>"; };
+		32362C191ADC0FD2000CA079 /* SetInstanceDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SetInstanceDescription.h; sourceTree = "<group>"; };
+		32362C1B1ADC0FDF000CA079 /* ControlUnitGroup.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ControlUnitGroup.cpp; sourceTree = "<group>"; };
+		32362C1C1ADC0FDF000CA079 /* ControlUnitGroup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ControlUnitGroup.h; sourceTree = "<group>"; };
+		32362C1F1ADD0C45000CA079 /* SetInstanceDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SetInstanceDescription.cpp; sourceTree = "<group>"; };
+		32362C201ADD0C45000CA079 /* SetInstanceDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SetInstanceDescription.h; sourceTree = "<group>"; };
 		3244C0C5168CB96B007C802C /* Record.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Record.h; sourceTree = "<group>"; };
 		3244D11B15ECC25800FE2F86 /* AlertEventChannel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AlertEventChannel.cpp; sourceTree = "<group>"; };
 		3244D11C15ECC25800FE2F86 /* AlertEventChannel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AlertEventChannel.h; sourceTree = "<group>"; };
@@ -1009,6 +1030,18 @@
 		32875F9917763B0800E33D6F /* AbstractPlugin.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AbstractPlugin.h; sourceTree = "<group>"; };
 		3289F9A3168508460080D93F /* SQLiteEntityDB.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SQLiteEntityDB.cpp; sourceTree = "<group>"; };
 		3289F9A4168508460080D93F /* SQLiteEntityDB.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SQLiteEntityDB.h; sourceTree = "<group>"; };
+		328C872A1ADEA45E0047C79B /* SearchInstancesByUS.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SearchInstancesByUS.cpp; sourceTree = "<group>"; };
+		328C872B1ADEA45E0047C79B /* SearchInstancesByUS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SearchInstancesByUS.h; sourceTree = "<group>"; };
+		328C872D1ADFC2D60047C79B /* GetInstance.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GetInstance.cpp; sourceTree = "<group>"; };
+		328C872E1ADFC2D60047C79B /* GetInstance.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GetInstance.h; sourceTree = "<group>"; };
+		328C87301ADFDB9A0047C79B /* SearchInstancesByUS.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SearchInstancesByUS.cpp; sourceTree = "<group>"; };
+		328C87311ADFDB9A0047C79B /* SearchInstancesByUS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SearchInstancesByUS.h; sourceTree = "<group>"; };
+		328C87341ADFDD410047C79B /* GetInstance.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GetInstance.cpp; sourceTree = "<group>"; };
+		328C87351ADFDD410047C79B /* GetInstance.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GetInstance.h; sourceTree = "<group>"; };
+		328C87381AE016DC0047C79B /* DeleteInstance.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DeleteInstance.cpp; sourceTree = "<group>"; };
+		328C87391AE016DC0047C79B /* DeleteInstance.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeleteInstance.h; sourceTree = "<group>"; };
+		328C873B1AE01A520047C79B /* DeleteInstance.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DeleteInstance.cpp; sourceTree = "<group>"; };
+		328C873C1AE01A520047C79B /* DeleteInstance.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeleteInstance.h; sourceTree = "<group>"; };
 		328CC9D41763CCC7000B30B6 /* AbstractDriver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AbstractDriver.cpp; sourceTree = "<group>"; };
 		328CC9D51763CCC7000B30B6 /* AbstractDriver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AbstractDriver.h; sourceTree = "<group>"; };
 		328D0FEF1A8A034E001A2001 /* NodeSearch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NodeSearch.cpp; sourceTree = "<group>"; };
@@ -1233,8 +1266,6 @@
 		32DF604615E1505F00312C94 /* CustomEventDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomEventDescriptor.h; sourceTree = "<group>"; };
 		32E0EF3518CDB37D00CD1808 /* ZMQDirectIOClientConnection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ZMQDirectIOClientConnection.cpp; sourceTree = "<group>"; };
 		32E0EF3618CDB37D00CD1808 /* ZMQDirectIOClientConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZMQDirectIOClientConnection.h; sourceTree = "<group>"; };
-		32E2561717A67564000F4E20 /* FinalStateMachine.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = FinalStateMachine.cpp; sourceTree = "<group>"; };
-		32E2561817A67564000F4E20 /* FinalStateMachine.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FinalStateMachine.h; sourceTree = "<group>"; };
 		32E977561A6E65B800D89C15 /* api_types.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = api_types.h; sourceTree = "<group>"; };
 		32E9A53C1A66A1B100545BB4 /* AbstractApi.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AbstractApi.cpp; sourceTree = "<group>"; };
 		32E9A53D1A66A1B100545BB4 /* AbstractApi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AbstractApi.h; sourceTree = "<group>"; };
@@ -1517,6 +1548,15 @@
 			path = reader;
 			sourceTree = "<group>";
 		};
+		322884421ADBB50300CA1F4B /* property */ = {
+			isa = PBXGroup;
+			children = (
+				322884431ADBB55400CA1F4B /* Property.h */,
+				322884441ADBBA1400CA1F4B /* PropertyCollector.h */,
+			);
+			path = property;
+			sourceTree = "<group>";
+		};
 		323236C9164573C60052CE06 /* ChaosMetadataService */ = {
 			isa = PBXGroup;
 			children = (
@@ -1602,6 +1642,38 @@
 			path = data_access;
 			sourceTree = "<group>";
 		};
+		32362C171ADC0FA1000CA079 /* control_unit */ = {
+			isa = PBXGroup;
+			children = (
+				32362C1B1ADC0FDF000CA079 /* ControlUnitGroup.cpp */,
+				32362C1C1ADC0FDF000CA079 /* ControlUnitGroup.h */,
+				32362C181ADC0FD2000CA079 /* SetInstanceDescription.cpp */,
+				32362C191ADC0FD2000CA079 /* SetInstanceDescription.h */,
+				328C872A1ADEA45E0047C79B /* SearchInstancesByUS.cpp */,
+				328C872B1ADEA45E0047C79B /* SearchInstancesByUS.h */,
+				328C872D1ADFC2D60047C79B /* GetInstance.cpp */,
+				328C872E1ADFC2D60047C79B /* GetInstance.h */,
+				328C87381AE016DC0047C79B /* DeleteInstance.cpp */,
+				328C87391AE016DC0047C79B /* DeleteInstance.h */,
+			);
+			path = control_unit;
+			sourceTree = "<group>";
+		};
+		32362C1E1ADD0BFF000CA079 /* control_unit */ = {
+			isa = PBXGroup;
+			children = (
+				32362C1F1ADD0C45000CA079 /* SetInstanceDescription.cpp */,
+				32362C201ADD0C45000CA079 /* SetInstanceDescription.h */,
+				328C87301ADFDB9A0047C79B /* SearchInstancesByUS.cpp */,
+				328C87311ADFDB9A0047C79B /* SearchInstancesByUS.h */,
+				328C87341ADFDD410047C79B /* GetInstance.cpp */,
+				328C87351ADFDD410047C79B /* GetInstance.h */,
+				328C873B1AE01A520047C79B /* DeleteInstance.cpp */,
+				328C873C1AE01A520047C79B /* DeleteInstance.h */,
+			);
+			path = control_unit;
+			sourceTree = "<group>";
+		};
 		3244C0BF168CACC1007C802C /* entity */ = {
 			isa = PBXGroup;
 			children = (
@@ -1952,31 +2024,31 @@
 				326DB42E14B38BC00018A8D0 /* version.h */,
 				326DB42F14B38BC00018A8D0 /* version.sh */,
 				32C100F4191B6EE100478F40 /* async_central */,
-				3296030E1876B45000CDCADA /* batch_command */,
-				32C3543317885A36009ED581 /* extension */,
-				32875F951776317F00E33D6F /* plugin */,
-				32BE864415A0CDC200818C39 /* log */,
 				326DB3B514B38BC00018A8D0 /* action */,
+				3296030E1876B45000CDCADA /* batch_command */,
 				326DB3BD14B38BC00018A8D0 /* bson */,
 				326DB3E314B38BC00018A8D0 /* configuration */,
-				329FFFCE1707128600D69CDE /* memory */,
+				32640A07169DCC1B00450962 /* caching_system */,
 				326DB3E614B38BC00018A8D0 /* data */,
-				326DB3EB14B38BC00018A8D0 /* fsm */,
 				326DB3EF14B38BC00018A8D0 /* dispatcher */,
+				32C3543317885A36009ED581 /* extension */,
 				326DB3FC14B38BC00018A8D0 /* exception */,
+				320C2180151B2BF200BD0F41 /* event */,
 				326DB3FE14B38BC00018A8D0 /* general */,
+				322884421ADBB50300CA1F4B /* property */,
+				32875F951776317F00E33D6F /* plugin */,
+				32BE864415A0CDC200818C39 /* log */,
+				329FFFCE1707128600D69CDE /* memory */,
 				326DB40214B38BC00018A8D0 /* io */,
 				3285569D17F2E20500A64ED2 /* direct_io */,
 				326DB40814B38BC00018A8D0 /* pool */,
 				326DB40C14B38BC00018A8D0 /* pqueue */,
 				326DB41114B38BC00018A8D0 /* rpc */,
 				32A91FC71A49AEC300DCF364 /* sync_rpc */,
-				320C2180151B2BF200BD0F41 /* event */,
 				32AAD78114CD630D005A097C /* message */,
 				326DB41914B38BC00018A8D0 /* network */,
 				326DB41D14B38BC00018A8D0 /* thread */,
 				326DB42414B38BC00018A8D0 /* utility */,
-				32640A07169DCC1B00450962 /* caching_system */,
 			);
 			path = common;
 			sourceTree = "<group>";
@@ -2056,15 +2128,6 @@
 			path = data;
 			sourceTree = "<group>";
 		};
-		326DB3EB14B38BC00018A8D0 /* fsm */ = {
-			isa = PBXGroup;
-			children = (
-				32E2561717A67564000F4E20 /* FinalStateMachine.cpp */,
-				32E2561817A67564000F4E20 /* FinalStateMachine.h */,
-			);
-			path = fsm;
-			sourceTree = "<group>";
-		};
 		326DB3EF14B38BC00018A8D0 /* dispatcher */ = {
 			isa = PBXGroup;
 			children = (
@@ -2336,6 +2399,7 @@
 				3208AAB71AC56A51000860D9 /* ApiProxy.cpp */,
 				3208AAB81AC56A51000860D9 /* ApiProxy.h */,
 				322E26721AC6E437002E5DA4 /* api.h */,
+				32362C1E1ADD0BFF000CA079 /* control_unit */,
 				3208AAB61AC55EA3000860D9 /* node */,
 			);
 			path = api_proxy;
@@ -2771,6 +2835,7 @@
 		32C7B8FA16DD35D7005B3B21 /* api */ = {
 			isa = PBXGroup;
 			children = (
+				32362C171ADC0FA1000CA079 /* control_unit */,
 				328E77FC1A7A937D0008C070 /* node */,
 				3235FDC41A6FF40100EC83A9 /* producer */,
 				328E78051A7A9FE40008C070 /* AbstractApi.cpp */,
@@ -2954,6 +3019,7 @@
 				326DB46614B38BC00018A8D0 /* ChaosDispatcher.h in Headers */,
 				53DADAAF19C8676C00E13DB2 /* SingletonOnArguments.h in Headers */,
 				32AB51CE1A1A69A300BB0BE3 /* DirectIOSystemAPIServerChannel.h in Headers */,
+				322884451ADBBA1400CA1F4B /* PropertyCollector.h in Headers */,
 				32F7FEAC18A5066600FC03AB /* FastDelegateBind.h in Headers */,
 				324A4B50191A41EF00975394 /* cstdint.h in Headers */,
 				324A4B4A191A41EF00975394 /* atomic_word.h in Headers */,
@@ -3249,9 +3315,12 @@
 			isa = PBXHeadersBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				328C87371ADFDD410047C79B /* GetInstance.h in Headers */,
 				3208AABE1AC56C1C000860D9 /* GetNodeDescription.h in Headers */,
 				3274A90D1AC2F214000C6A4D /* ApiProxyManager.h in Headers */,
+				328C87331ADFDB9A0047C79B /* SearchInstancesByUS.h in Headers */,
 				3208AABA1AC56A51000860D9 /* ApiProxy.h in Headers */,
+				32362C221ADD0C45000CA079 /* SetInstanceDescription.h in Headers */,
 				323386B21ACD731E008863DC /* NodeSearch.h in Headers */,
 				32661C6E1AA741D000F1A721 /* ChaosMetadataServiceClient.h in Headers */,
 			);
@@ -3532,10 +3601,13 @@
 				3235FDCA1A6FF45600EC83A9 /* ProducerRegisterApi.cpp in Sources */,
 				3235FDD91A6FFA6600EC83A9 /* MongoDBPersistenceDriver.cpp in Sources */,
 				32809C7F1A9C847400C02C12 /* ControlUnitDataAccess.cpp in Sources */,
+				32362C1D1ADC0FDF000CA079 /* ControlUnitGroup.cpp in Sources */,
 				32B9F3F41AC3E74C00380FE9 /* AbstractPersistenceDriver.cpp in Sources */,
 				32B9F3FA1AC4460A00380FE9 /* NodeGetDescription.cpp in Sources */,
 				328E78021A7A94810008C070 /* NodeRegister.cpp in Sources */,
+				328C873A1AE016DC0047C79B /* DeleteInstance.cpp in Sources */,
 				323236CB164573C60052CE06 /* main.cpp in Sources */,
+				328C872C1ADEA45E0047C79B /* SearchInstancesByUS.cpp in Sources */,
 				32FA1EF31A7A462200A46800 /* MDSBatchCommand.cpp in Sources */,
 				32809C7C1A9C7DDD00C02C12 /* MongoDBUtilityDataAccess.cpp in Sources */,
 				323386B71AD3C4C6008863DC /* MongoDBAccessor.cpp in Sources */,
@@ -3544,7 +3616,9 @@
 				32809C821A9C84F900C02C12 /* MongoDBControlUnitDataAccess.cpp in Sources */,
 				3235FDD61A6FF8A800EC83A9 /* MongoDBUnitServerDataAccess.cpp in Sources */,
 				32B3E11D1A7A3923007B7802 /* MDSBatchExecutor.cpp in Sources */,
+				328C872F1ADFC2D60047C79B /* GetInstance.cpp in Sources */,
 				328D0FF11A8A034E001A2001 /* NodeSearch.cpp in Sources */,
+				32362C1A1ADC0FD2000CA079 /* SetInstanceDescription.cpp in Sources */,
 				32B9F3F71AC4186300380FE9 /* NodeCreateUnitServer.cpp in Sources */,
 				328E78061A7A9FE40008C070 /* AbstractApi.cpp in Sources */,
 				32B9F3F31AC3E74C00380FE9 /* AbstractDataAccess.cpp in Sources */,
@@ -3788,8 +3862,12 @@
 			files = (
 				32661C6D1AA741D000F1A721 /* ChaosMetadataServiceClient.cpp in Sources */,
 				3208AABD1AC56C1C000860D9 /* GetNodeDescription.cpp in Sources */,
+				328C873E1AE01A590047C79B /* DeleteInstance.cpp in Sources */,
+				32362C211ADD0C45000CA079 /* SetInstanceDescription.cpp in Sources */,
 				3274A90C1AC2F214000C6A4D /* ApiProxyManager.cpp in Sources */,
 				3208AAB91AC56A51000860D9 /* ApiProxy.cpp in Sources */,
+				328C87361ADFDD410047C79B /* GetInstance.cpp in Sources */,
+				328C87321ADFDB9A0047C79B /* SearchInstancesByUS.cpp in Sources */,
 				323386B11ACD731E008863DC /* NodeSearch.cpp in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
diff --git a/ChaosDataExport/cde.cpp b/ChaosDataExport/cde.cpp
index 75cb920cfe66d24af7b2d21bd43c2e91fd06f324..4cde38fbf791144279b82ac465e20eb592f35442 100644
--- a/ChaosDataExport/cde.cpp
+++ b/ChaosDataExport/cde.cpp
@@ -1,6 +1,6 @@
 /*
  *	cde.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
@@ -40,6 +40,7 @@
 
 using namespace std;
 using namespace chaos;
+using namespace chaos::common::data;
 using namespace chaos::common::utility;
 using namespace chaos::ui;
 using namespace bson;
diff --git a/ChaosDataService/ChaosDataService.cpp b/ChaosDataService/ChaosDataService.cpp
index 5243ff46b3d7b4908106cc59fc3d80f72b48f126..c4f015c8493375a730f9dee11c0145d37b10cf50 100644
--- a/ChaosDataService/ChaosDataService.cpp
+++ b/ChaosDataService/ChaosDataService.cpp
@@ -1,6 +1,6 @@
 /*
  *	ChaosDataService.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/ChaosDataService.h b/ChaosDataService/ChaosDataService.h
index 38397654d90a2a5ef1b748f6b740dd67a8f852b0..a23939c06d762b1f6b1532046c8c7170017ee73c 100644
--- a/ChaosDataService/ChaosDataService.h
+++ b/ChaosDataService/ChaosDataService.h
@@ -1,6 +1,6 @@
 /*
  *	ChaosDataService.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/QueryDataConsumer.cpp b/ChaosDataService/QueryDataConsumer.cpp
index bddfaf7fd9e9d32f505a5909bc7c7b62f15114c0..0589b4f33275c9205467d1f632f5a89f372a17db 100644
--- a/ChaosDataService/QueryDataConsumer.cpp
+++ b/ChaosDataService/QueryDataConsumer.cpp
@@ -1,6 +1,6 @@
 /*
  *	QueryDataConsumer.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/QueryDataConsumer.h b/ChaosDataService/QueryDataConsumer.h
index 2de32f03e133af7bc9a5ae65b3cd1274aa48ec37..99095e4a5a8725a0e996f410223ad67095c1b97a 100644
--- a/ChaosDataService/QueryDataConsumer.h
+++ b/ChaosDataService/QueryDataConsumer.h
@@ -1,6 +1,6 @@
 /*
  *	QueryDataConsumer.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/StageDataConsumer.cpp b/ChaosDataService/StageDataConsumer.cpp
index 45c3180fc9b5f4014695ae81c26571dea5828d75..7024c5f986e0f1c9316450ec7cf11bf9d42208d0 100644
--- a/ChaosDataService/StageDataConsumer.cpp
+++ b/ChaosDataService/StageDataConsumer.cpp
@@ -1,6 +1,6 @@
 /*
  *	StageDataConsumer.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/StageDataConsumer.h b/ChaosDataService/StageDataConsumer.h
index 46cdb3b373796eb82ca48329666dd468ed054857..e610a2f56dd8ae6dd0dc4bb2b55597c7ef61aa5e 100644
--- a/ChaosDataService/StageDataConsumer.h
+++ b/ChaosDataService/StageDataConsumer.h
@@ -1,6 +1,6 @@
 /*
  *	StageDataConsumer.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/cache_system/CacheDriver.cpp b/ChaosDataService/cache_system/CacheDriver.cpp
index 3b6039ea21d65a005275114cd81134c9e22a3764..b1a6b067cfb8eb18e2a551ce80e2cfcf1f7c9560 100644
--- a/ChaosDataService/cache_system/CacheDriver.cpp
+++ b/ChaosDataService/cache_system/CacheDriver.cpp
@@ -1,6 +1,6 @@
 /*
  *	CacheDriver.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/cache_system/CacheDriver.h b/ChaosDataService/cache_system/CacheDriver.h
index c78ad05405706bb92a9592f751d248d66ff54c56..62cb00ea7405c5539d9716aec1d2757c1b0904f0 100644
--- a/ChaosDataService/cache_system/CacheDriver.h
+++ b/ChaosDataService/cache_system/CacheDriver.h
@@ -1,6 +1,6 @@
 /*
  *	CacheDriver.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/cache_system/CouchbaseCacheDriver.cpp b/ChaosDataService/cache_system/CouchbaseCacheDriver.cpp
index a73b5a3254586360b2ac71a6beea5a5a6e907569..2bfee5338a1a9496fe1cc66e8a4962ceb3906f15 100644
--- a/ChaosDataService/cache_system/CouchbaseCacheDriver.cpp
+++ b/ChaosDataService/cache_system/CouchbaseCacheDriver.cpp
@@ -1,6 +1,6 @@
 /*
  *	CouchbaseChacheDriver.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/cache_system/CouchbaseCacheDriver.h b/ChaosDataService/cache_system/CouchbaseCacheDriver.h
index 07b648968110f91654c0bddae36cd2b74bcc357e..11a9164a263e01c5081245de1d4dc8c5670caede 100644
--- a/ChaosDataService/cache_system/CouchbaseCacheDriver.h
+++ b/ChaosDataService/cache_system/CouchbaseCacheDriver.h
@@ -1,6 +1,6 @@
 /*
  *	CouchbaseCacheDriver.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/cache_system/MemcachedCacheDriver.h b/ChaosDataService/cache_system/MemcachedCacheDriver.h
index 1b780a80a5d7199dea90bc956a96177ef211589e..018c44423c5f5a870d4de4d28b02d0cd192cfbed 100644
--- a/ChaosDataService/cache_system/MemcachedCacheDriver.h
+++ b/ChaosDataService/cache_system/MemcachedCacheDriver.h
@@ -1,6 +1,6 @@
 /*
  *	MemcachedCacheDriver.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/cache_system/cache_system.h b/ChaosDataService/cache_system/cache_system.h
index 380491fa8ba0d1453fac43b9762aecdc2187de8e..62ffca5a1cc5c19e2607f91ea423c679e0da2def 100644
--- a/ChaosDataService/cache_system/cache_system.h
+++ b/ChaosDataService/cache_system/cache_system.h
@@ -1,6 +1,6 @@
 /*
  *	cache_system.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/cache_system/cache_system_types.h b/ChaosDataService/cache_system/cache_system_types.h
index 57944d2081ef3d7977d15bf8a4f252fc829a3f77..872b1a455f17fab9f1e8c7da382e29199cc8aca8 100644
--- a/ChaosDataService/cache_system/cache_system_types.h
+++ b/ChaosDataService/cache_system/cache_system_types.h
@@ -1,6 +1,6 @@
 /*
  *	cache_system_types.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/db_system/DBDriver.cpp b/ChaosDataService/db_system/DBDriver.cpp
index c9f98687980f3b62ea6c295241ed160e04c8e52e..15f89ddb13b1a455f90c6d617ff6a02735a7526b 100644
--- a/ChaosDataService/db_system/DBDriver.cpp
+++ b/ChaosDataService/db_system/DBDriver.cpp
@@ -1,6 +1,6 @@
 /*
  *	DBDriver.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/db_system/DBDriver.h b/ChaosDataService/db_system/DBDriver.h
index 61e00b9273aaf4938141f306cbe078bdf278ffd3..1a2201ef3afa8376646dc507459ddb0e8b21532f 100644
--- a/ChaosDataService/db_system/DBDriver.h
+++ b/ChaosDataService/db_system/DBDriver.h
@@ -1,6 +1,6 @@
 /*
  *	DBDriver.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/db_system/DBIndexCursor.cpp b/ChaosDataService/db_system/DBIndexCursor.cpp
index 43b067a9208070aea7d68fb6dbd241f3ee1084c5..5203b2e9aadc847db5cd30d087584375aff19a59 100644
--- a/ChaosDataService/db_system/DBIndexCursor.cpp
+++ b/ChaosDataService/db_system/DBIndexCursor.cpp
@@ -1,6 +1,6 @@
 /*
  *	DBIndexCursor.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/db_system/DBIndexCursor.h b/ChaosDataService/db_system/DBIndexCursor.h
index 456599657294efedf164c72431a6e66a8f2b3049..fc577a65b148d017725dc8852275bac4754c0ecb 100644
--- a/ChaosDataService/db_system/DBIndexCursor.h
+++ b/ChaosDataService/db_system/DBIndexCursor.h
@@ -1,6 +1,6 @@
 /*
  *	DBIndexCursor.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/db_system/MongoDBDriver.h b/ChaosDataService/db_system/MongoDBDriver.h
index d6c274dd7e1a291eb50e13287c61ef7ddc7139e1..3529815202e04d15a44ef49d8f516dfafc8ee34a 100644
--- a/ChaosDataService/db_system/MongoDBDriver.h
+++ b/ChaosDataService/db_system/MongoDBDriver.h
@@ -1,6 +1,6 @@
 /*
  *	MongoDBDriver.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/db_system/MongoDBIndexCursor.cpp b/ChaosDataService/db_system/MongoDBIndexCursor.cpp
index ba11ee300874da04f588f590442ce6015f30f8fd..71ac5ce1d89c6c658be1130815efe6424b25de23 100644
--- a/ChaosDataService/db_system/MongoDBIndexCursor.cpp
+++ b/ChaosDataService/db_system/MongoDBIndexCursor.cpp
@@ -1,6 +1,6 @@
 /*
  *	MongoDBIndexCursor.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/db_system/MongoDBIndexCursor.h b/ChaosDataService/db_system/MongoDBIndexCursor.h
index 91b1756bfda620ceb2a80bf4f4ab7f158ef58b0d..2a2b47771d3313db192bca49a16ec3e9a3fd95f9 100644
--- a/ChaosDataService/db_system/MongoDBIndexCursor.h
+++ b/ChaosDataService/db_system/MongoDBIndexCursor.h
@@ -1,6 +1,6 @@
 /*
  *	MongoDBIndexCursor.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/db_system/db_system.h b/ChaosDataService/db_system/db_system.h
index 58c2740657a2f911259ecc61e8adfe62fdad3ed1..0888270723184cf1bf3fdd170a0cbe18019c9a3a 100644
--- a/ChaosDataService/db_system/db_system.h
+++ b/ChaosDataService/db_system/db_system.h
@@ -1,6 +1,6 @@
 /*
  *	index_system.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/db_system/db_system_types.h b/ChaosDataService/db_system/db_system_types.h
index 64df1475abe402e605bc9801a7ead69e27af6c1a..29c2e8a4cc904133102c7eb38574505ac3e61f52 100644
--- a/ChaosDataService/db_system/db_system_types.h
+++ b/ChaosDataService/db_system/db_system_types.h
@@ -1,6 +1,6 @@
 /*
  *	index_systsem_types.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/indexer/DataPackScanner.cpp b/ChaosDataService/indexer/DataPackScanner.cpp
index 6a6571a61d5469a269f4683d4131c77054053d7a..48d8cac6559fba185ca1e209937038b07d6a7bd7 100644
--- a/ChaosDataService/indexer/DataPackScanner.cpp
+++ b/ChaosDataService/indexer/DataPackScanner.cpp
@@ -1,6 +1,6 @@
 /*
  *	DataPackScanner.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/indexer/DataPackScanner.h b/ChaosDataService/indexer/DataPackScanner.h
index d4f590f693956df4bb1e63c9353c827e2e942f12..760de0bd41d76018eccff02dd25d8960db7bc619 100644
--- a/ChaosDataService/indexer/DataPackScanner.h
+++ b/ChaosDataService/indexer/DataPackScanner.h
@@ -1,6 +1,6 @@
 /*
  *	DataPackScanner.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/indexer/StageDataVFileScanner.cpp b/ChaosDataService/indexer/StageDataVFileScanner.cpp
index 26dd7c2ba26a622663b15390dd871ceb6d5167dd..8c6fd8e41d9988da80ebe323daa25a855942066f 100644
--- a/ChaosDataService/indexer/StageDataVFileScanner.cpp
+++ b/ChaosDataService/indexer/StageDataVFileScanner.cpp
@@ -1,6 +1,6 @@
 /*
  *	StageDataVFileScanner.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/indexer/StageDataVFileScanner.h b/ChaosDataService/indexer/StageDataVFileScanner.h
index 567c247639af77e1c52abc9df053232623738fd8..fa98f37263a9f778799574ec5e05fc2b9c1892a8 100644
--- a/ChaosDataService/indexer/StageDataVFileScanner.h
+++ b/ChaosDataService/indexer/StageDataVFileScanner.h
@@ -1,6 +1,6 @@
 /*
  *	StageDataVFileScanner.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/main.cpp b/ChaosDataService/main.cpp
index b09fab8c1737b0dbf18df5c8c6fee1bb507faf76..03b6bf807df85d531f170041b41b7cfb8d7f4a20 100644
--- a/ChaosDataService/main.cpp
+++ b/ChaosDataService/main.cpp
@@ -1,6 +1,6 @@
 /*
  *	main.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/query_engine/QueryEngine.cpp b/ChaosDataService/query_engine/QueryEngine.cpp
index a10f4ed735fcce5931ed81917d229f79eaef8e97..cb1f96f95432aa348566fb20645c44d58ed17794 100644
--- a/ChaosDataService/query_engine/QueryEngine.cpp
+++ b/ChaosDataService/query_engine/QueryEngine.cpp
@@ -1,6 +1,6 @@
 /*
  *	QueryAnswerEngine.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/query_engine/QueryEngine.h b/ChaosDataService/query_engine/QueryEngine.h
index cdf8a67d26949a62cb65e1745add77bcb733ecec..a4d5c1728f8f247beadbeee738dc801c8e3b7fac 100644
--- a/ChaosDataService/query_engine/QueryEngine.h
+++ b/ChaosDataService/query_engine/QueryEngine.h
@@ -1,6 +1,6 @@
 /*
  *	QueryAnswerEngine.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/vfs/DataBlock.h b/ChaosDataService/vfs/DataBlock.h
index 1867c53e449bd720a60e70ce30fef9db7b2b8bd0..737ea6ba76b797501002bccb66c7254e47e3b8e1 100644
--- a/ChaosDataService/vfs/DataBlock.h
+++ b/ChaosDataService/vfs/DataBlock.h
@@ -1,6 +1,6 @@
 /*
  *	DataBlock.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/vfs/VFSConsts.h b/ChaosDataService/vfs/VFSConsts.h
index 5a71ab755f8d7dc5a905909e8557018134930e19..c10b9a94a16899decfef7750f0efc2d7666f3f8b 100644
--- a/ChaosDataService/vfs/VFSConsts.h
+++ b/ChaosDataService/vfs/VFSConsts.h
@@ -1,6 +1,6 @@
 /*
  *	VFSConst.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/vfs/VFSDataFile.cpp b/ChaosDataService/vfs/VFSDataFile.cpp
index f4cb79f892d7c55f5772524a942155253459d984..32ec383b2fab1c3a5fb6a300e26f5c85eeebd548 100644
--- a/ChaosDataService/vfs/VFSDataFile.cpp
+++ b/ChaosDataService/vfs/VFSDataFile.cpp
@@ -1,6 +1,6 @@
 /*
  *	VFSDataFile.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/vfs/VFSDataFile.h b/ChaosDataService/vfs/VFSDataFile.h
index acf64f2ef4b5df4038e103838db5195262d4ba2b..c63a5be6ae827ff88bcbd340d7239740b895cfce 100644
--- a/ChaosDataService/vfs/VFSDataFile.h
+++ b/ChaosDataService/vfs/VFSDataFile.h
@@ -1,6 +1,6 @@
 /*
  *	VFSDataFile.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/vfs/VFSDataWriteableFile.cpp b/ChaosDataService/vfs/VFSDataWriteableFile.cpp
index 0bf19bf73b476e9fd4ca02a0eef4f7937c99eec1..5333128bc773c7736a951016f71e9a25afc8ebb2 100644
--- a/ChaosDataService/vfs/VFSDataWriteableFile.cpp
+++ b/ChaosDataService/vfs/VFSDataWriteableFile.cpp
@@ -1,6 +1,6 @@
 /*
  *	VFSDataWriteableFile.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/vfs/VFSDataWriteableFile.h b/ChaosDataService/vfs/VFSDataWriteableFile.h
index 17a3fe4d2c31e68f8ac2489b2b91c790d25a759a..9568259f2e9debc9d519b74652f3a4c384500364 100644
--- a/ChaosDataService/vfs/VFSDataWriteableFile.h
+++ b/ChaosDataService/vfs/VFSDataWriteableFile.h
@@ -1,6 +1,6 @@
 /*
  *	VFSDataWriteableFile.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/vfs/VFSFile.cpp b/ChaosDataService/vfs/VFSFile.cpp
index eb5f4cd7acc6d0a3c125336bac836e58c6baf0a3..3c3574a19cbf063f79dbb6a79e7f5c2f7449f69a 100644
--- a/ChaosDataService/vfs/VFSFile.cpp
+++ b/ChaosDataService/vfs/VFSFile.cpp
@@ -1,6 +1,6 @@
 /*
  *	VFSFile.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/vfs/VFSFile.h b/ChaosDataService/vfs/VFSFile.h
index 79bb15e7eb93b1800e0528b3ade5dcb44a087dc1..e11982b36cb9ce57a4506b2c766d79f027c09d05 100644
--- a/ChaosDataService/vfs/VFSFile.h
+++ b/ChaosDataService/vfs/VFSFile.h
@@ -1,6 +1,6 @@
 /*
  *	VFSFile.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/vfs/VFSManager.cpp b/ChaosDataService/vfs/VFSManager.cpp
index febbbb4828d4633cdb9911b2b82f2dcf135de00a..3f860ce9671b67f7e2b2122220e1617ab4790c1b 100644
--- a/ChaosDataService/vfs/VFSManager.cpp
+++ b/ChaosDataService/vfs/VFSManager.cpp
@@ -1,6 +1,6 @@
 /*
  *	VFSManager.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/vfs/VFSManager.h b/ChaosDataService/vfs/VFSManager.h
index 6d07f0d2ebe9d58658b1c05ac8870d5fbc6b7caf..9bd4cdaf85b945ebc120de99edb8160430437c53 100644
--- a/ChaosDataService/vfs/VFSManager.h
+++ b/ChaosDataService/vfs/VFSManager.h
@@ -1,6 +1,6 @@
 /*
  *	VFSManager.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/vfs/VFSQuery.cpp b/ChaosDataService/vfs/VFSQuery.cpp
index b00cc8ca96c82d0b8f1e3bd07ae4dee3e5327b0c..64c747fd13e31c6c369b7bc0e14edd24271848a1 100644
--- a/ChaosDataService/vfs/VFSQuery.cpp
+++ b/ChaosDataService/vfs/VFSQuery.cpp
@@ -1,6 +1,6 @@
 /*
  *	VFSQuery.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/vfs/VFSQuery.h b/ChaosDataService/vfs/VFSQuery.h
index b237b5e686fd593aff63a482a3d057daeaa8d7ad..c39eb0441cf4ab7054521cd9240e7d17e378d0e2 100644
--- a/ChaosDataService/vfs/VFSQuery.h
+++ b/ChaosDataService/vfs/VFSQuery.h
@@ -1,6 +1,6 @@
 /*
  *	VFSQuery.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/vfs/VFSStageFile.cpp b/ChaosDataService/vfs/VFSStageFile.cpp
index 4d7277e6ffb7d97bd96630fdc30ef594427acc8e..2254e8c7512bce5f124ba38838c0d0f26ece7a3d 100644
--- a/ChaosDataService/vfs/VFSStageFile.cpp
+++ b/ChaosDataService/vfs/VFSStageFile.cpp
@@ -1,6 +1,6 @@
 /*
  *	VFSStageFile.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/vfs/VFSStageFile.h b/ChaosDataService/vfs/VFSStageFile.h
index cfdeb2bbdc3c726485bc64a128c6bdc82137c7ed..977dda03f17486904067fd2575dde5a4e230fe57 100644
--- a/ChaosDataService/vfs/VFSStageFile.h
+++ b/ChaosDataService/vfs/VFSStageFile.h
@@ -1,6 +1,6 @@
 /*
  *	VFSStageFile.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/vfs/VFSStageReadableFile.cpp b/ChaosDataService/vfs/VFSStageReadableFile.cpp
index 2d55fd8754e2d3b001c2d4e81ee5b1ce6ab7d481..20cadf4459792702971aca95e4f880e08a39a374 100644
--- a/ChaosDataService/vfs/VFSStageReadableFile.cpp
+++ b/ChaosDataService/vfs/VFSStageReadableFile.cpp
@@ -1,6 +1,6 @@
 /*
  *	VFSStageReadableFile.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/vfs/VFSStageReadableFile.h b/ChaosDataService/vfs/VFSStageReadableFile.h
index d4b02a73bc60d44f7912c19e8a00850f3fefa89b..3fc49ab8bb195bea32ccde93d4e6b9468d8399ff 100644
--- a/ChaosDataService/vfs/VFSStageReadableFile.h
+++ b/ChaosDataService/vfs/VFSStageReadableFile.h
@@ -1,6 +1,6 @@
 /*
  *	VFSStageRedeableFile.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/vfs/VFSStageWriteableFile.cpp b/ChaosDataService/vfs/VFSStageWriteableFile.cpp
index be641e7d05a1552b8dfb6f2abd7ce53ac55679a9..2b5681af803224571fa8201cef155ffe7bdeb379 100644
--- a/ChaosDataService/vfs/VFSStageWriteableFile.cpp
+++ b/ChaosDataService/vfs/VFSStageWriteableFile.cpp
@@ -1,6 +1,6 @@
 /*
  *	VFSStageWriteableFile.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/vfs/VFSStageWriteableFile.h b/ChaosDataService/vfs/VFSStageWriteableFile.h
index c04dd8a869f450780e07da76d9dbd9979864c0dc..35f33828237e3f359b6b9898a442e667044131c6 100644
--- a/ChaosDataService/vfs/VFSStageWriteableFile.h
+++ b/ChaosDataService/vfs/VFSStageWriteableFile.h
@@ -1,6 +1,6 @@
 /*
  *	VFSStageWriteableFile.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/vfs/VFSTypes.h b/ChaosDataService/vfs/VFSTypes.h
index 4649fea37ac2bf47ccf61a005caedca4d3bdb943..da742631c8d5b14aa01ae3821c9a9fc5b892d0f7 100644
--- a/ChaosDataService/vfs/VFSTypes.h
+++ b/ChaosDataService/vfs/VFSTypes.h
@@ -1,6 +1,6 @@
 /*
  *	VFSTypes.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/vfs/query/DataBlockCache.cpp b/ChaosDataService/vfs/query/DataBlockCache.cpp
index 8bf3880300cd2ae0f63b37eb66792a3093442ba2..67819d477b4211e5d8b907c9a962e13659ecb76c 100644
--- a/ChaosDataService/vfs/query/DataBlockCache.cpp
+++ b/ChaosDataService/vfs/query/DataBlockCache.cpp
@@ -1,6 +1,6 @@
 /*
  *	DataBlockCache.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/vfs/query/DataBlockCache.h b/ChaosDataService/vfs/query/DataBlockCache.h
index 1a8bcebee30830d95ea572f363ce380196991479..311984af1e7609e7102323f69c9b596d79e0fae1 100644
--- a/ChaosDataService/vfs/query/DataBlockCache.h
+++ b/ChaosDataService/vfs/query/DataBlockCache.h
@@ -1,6 +1,6 @@
 /*
  *	DataBlockCache.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/vfs/query/DataBlockFetcher.cpp b/ChaosDataService/vfs/query/DataBlockFetcher.cpp
index c860399dea68dd2ed3f3c8707b1d4d2cba6bb909..c709070f5dabc957a1981a8ff284ab857e1acf3c 100644
--- a/ChaosDataService/vfs/query/DataBlockFetcher.cpp
+++ b/ChaosDataService/vfs/query/DataBlockFetcher.cpp
@@ -1,6 +1,6 @@
 /*
  *	DataBlockFetcher.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/vfs/query/DataBlockFetcher.h b/ChaosDataService/vfs/query/DataBlockFetcher.h
index aaee1dfed35096c691ebc5f5c42c18eb9152e43f..df58681a1c5261f7fada0355eed77092d45eb04d 100644
--- a/ChaosDataService/vfs/query/DataBlockFetcher.h
+++ b/ChaosDataService/vfs/query/DataBlockFetcher.h
@@ -1,6 +1,6 @@
 /*
  *	DataBlockFetcher.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/vfs/storage_system/PosixStorageDriver.cpp b/ChaosDataService/vfs/storage_system/PosixStorageDriver.cpp
index ca8a0fe95db10d0e1530d382f07836d30551001c..35f3621f6bd2e3f48c07530e090e7cc7101e9450 100644
--- a/ChaosDataService/vfs/storage_system/PosixStorageDriver.cpp
+++ b/ChaosDataService/vfs/storage_system/PosixStorageDriver.cpp
@@ -1,6 +1,6 @@
 /*
  *	PosixStorageDriver.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/vfs/storage_system/PosixStorageDriver.h b/ChaosDataService/vfs/storage_system/PosixStorageDriver.h
index d465a4d73c31095247fc983fd4b2d706d23be817..a55b3b8285037f3f85cb6d728f3bbaeea8556c00 100644
--- a/ChaosDataService/vfs/storage_system/PosixStorageDriver.h
+++ b/ChaosDataService/vfs/storage_system/PosixStorageDriver.h
@@ -1,6 +1,6 @@
 /*
  *	PosixStorageDriver.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/vfs/storage_system/StorageDriver.cpp b/ChaosDataService/vfs/storage_system/StorageDriver.cpp
index dd762eb539a1c5d537d3a027a15ddacdd6f780ff..a26ba41e5944a0f4ded5649c23253d45c23d3b5d 100644
--- a/ChaosDataService/vfs/storage_system/StorageDriver.cpp
+++ b/ChaosDataService/vfs/storage_system/StorageDriver.cpp
@@ -1,6 +1,6 @@
 /*
  *	StorageDriver.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/vfs/storage_system/StorageDriver.h b/ChaosDataService/vfs/storage_system/StorageDriver.h
index c18bd61f1c1df248eaf392f1c59fe1890548bdea..0a420ab760d06108d60e7b32c162759b00c63a48 100644
--- a/ChaosDataService/vfs/storage_system/StorageDriver.h
+++ b/ChaosDataService/vfs/storage_system/StorageDriver.h
@@ -1,6 +1,6 @@
 /*
  *	StorageDriver.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/vfs/storage_system/storage_system.h b/ChaosDataService/vfs/storage_system/storage_system.h
index 233b7ef095e0f7b2e94e1a81fc669ef8c4312b7e..a02f046a18c13cb08521a4d4ac3da132c3275162 100644
--- a/ChaosDataService/vfs/storage_system/storage_system.h
+++ b/ChaosDataService/vfs/storage_system/storage_system.h
@@ -1,6 +1,6 @@
 /*
  *	storage_system.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/vfs/vfs.h b/ChaosDataService/vfs/vfs.h
index 78edd958df929b685fba2a0255bc98ca84ab5026..aeac982df6de637f534a0d858cccd80a12ec7c64 100644
--- a/ChaosDataService/vfs/vfs.h
+++ b/ChaosDataService/vfs/vfs.h
@@ -1,6 +1,6 @@
 /*
  *	vfs.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/worker/DataWorker.h b/ChaosDataService/worker/DataWorker.h
index 1c69cedce403ec61c9e863a2f28b291d5f280d5a..a9bf4d805a6f046388c3422159a340bdcd84ef3a 100644
--- a/ChaosDataService/worker/DataWorker.h
+++ b/ChaosDataService/worker/DataWorker.h
@@ -1,6 +1,6 @@
 /*
  *	DataWorker.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/worker/DeviceSharedDataWorker.cpp b/ChaosDataService/worker/DeviceSharedDataWorker.cpp
index c51165adf32161cf299382b4daea97be71a0f0d0..befce4571b4a67fbc43fbb34402ea5aaf81667fd 100644
--- a/ChaosDataService/worker/DeviceSharedDataWorker.cpp
+++ b/ChaosDataService/worker/DeviceSharedDataWorker.cpp
@@ -1,6 +1,6 @@
 /*
  *	DeviceDataWorker.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/worker/DeviceSharedDataWorker.h b/ChaosDataService/worker/DeviceSharedDataWorker.h
index 5bd4a269f37531eab56c0240e67233f06cbc6da9..22c3195eb8eb1ee81341b384cf286f705a18bff2 100644
--- a/ChaosDataService/worker/DeviceSharedDataWorker.h
+++ b/ChaosDataService/worker/DeviceSharedDataWorker.h
@@ -1,6 +1,6 @@
 /*
  *	DeviceDataWorker.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/worker/SnapshotCreationWorker.cpp b/ChaosDataService/worker/SnapshotCreationWorker.cpp
index 85266155bb2404b87a33faa8938a3ba94bfd0788..7a2d5d888cef8965b88777fd65269e06002f413c 100644
--- a/ChaosDataService/worker/SnapshotCreationWorker.cpp
+++ b/ChaosDataService/worker/SnapshotCreationWorker.cpp
@@ -1,6 +1,6 @@
 /*
  *	SnapshotCreationWorker.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosDataService/worker/SnapshotCreationWorker.h b/ChaosDataService/worker/SnapshotCreationWorker.h
index 75b418671133fc0e6495ba7126288f83cf208a96..aed1c2a7b72e4f1dfe00f3c599b6ba58a1e449f8 100644
--- a/ChaosDataService/worker/SnapshotCreationWorker.h
+++ b/ChaosDataService/worker/SnapshotCreationWorker.h
@@ -1,6 +1,6 @@
 /*
  *	SnapshotCreationWorker.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/CMakeLists.txt b/ChaosMetadataService/CMakeLists.txt
index af94c7c2b15e4ba2aea4b18abfd2a63eab66503d..913fbe80cc1b10d522c40d91e55465ad316170ed 100644
--- a/ChaosMetadataService/CMakeLists.txt
+++ b/ChaosMetadataService/CMakeLists.txt
@@ -5,22 +5,27 @@ include($ENV{CHAOS_BUNDLE}/tools/project_template/CMakeChaos.txt)
 SET(cnd_src				main.cpp
 						ChaosMetadataService.cpp)
 
-SET(src  ${src}         ../chaos_service_common/persistence/mongodb/MongoDBHAConnectionManager.cpp
+SET(cnd_src  ${cnd_src} ../chaos_service_common/persistence/mongodb/MongoDBHAConnectionManager.cpp
                         ../chaos_service_common/persistence/mongodb/MongoDBAccessor.cpp)
-SET(src  ${src}         ../chaos_service_common/persistence/data_access/AbstractDataAccess.cpp
+SET(cnd_src  ${cnd_src} ../chaos_service_common/persistence/data_access/AbstractDataAccess.cpp
 												../chaos_service_common/persistence/data_access/AbstractPersistenceDriver.cpp)
 SET(cnd_src  ${cnd_src}	api/ApiManagment.cpp
                         api/AbstractApi.cpp
                         api/AbstractApiGroup.cpp)
 
 SET(cnd_src  ${cnd_src}	api/producer/ProducerApiGroup.cpp
-												api/producer/ProducerRegisterApi.cpp)
+						api/producer/ProducerRegisterApi.cpp)
+
+SET(cnd_src  ${cnd_src}	api/control_unit/ControlUnitGroup.cpp
+                        api/control_unit/SetInstanceDescription.cpp
+                        api/control_unit/SearchInstancesByUS.cpp
+                        api/control_unit/GetInstance.cpp)
 
 SET(cnd_src  ${cnd_src}	api/node/NodeGroup.cpp
                         api/node/NodeCreateUnitServer.cpp
-												api/node/NodeGetDescription.cpp
-												api/node/NodeRegister.cpp
-												api/node/NodeSearch.cpp)
+						api/node/NodeGetDescription.cpp
+						api/node/NodeRegister.cpp
+						api/node/NodeSearch.cpp)
 
 SET(cnd_src  ${cnd_src}	persistence/data_access/UnitServerDataAccess.cpp
                         persistence/data_access/NodeDataAccess.cpp
@@ -28,7 +33,7 @@ SET(cnd_src  ${cnd_src}	persistence/data_access/UnitServerDataAccess.cpp
                         persistence/data_access/ControlUnitDataAccess.cpp)
 
 SET(cnd_src  ${cnd_src}	persistence/mongodb/MongoDBPersistenceDriver.cpp
-						persistence/mongodb/MongoDBUnitServerDataAccess.cpp
+												persistence/mongodb/MongoDBUnitServerDataAccess.cpp
                         persistence/mongodb/MongoDBNodeDataAccess.cpp
                         persistence/mongodb/MongoDBUtilityDataAccess.cpp
                         persistence/mongodb/MongoDBControlUnitDataAccess.cpp)
diff --git a/ChaosMetadataService/ChaosMetadataService.cpp b/ChaosMetadataService/ChaosMetadataService.cpp
index 97c64a0452e922fa20c2454e5d0f4b0f9670e30e..eb06d1ac1861f0729df38d2f77a2075a1cee2913 100644
--- a/ChaosMetadataService/ChaosMetadataService.cpp
+++ b/ChaosMetadataService/ChaosMetadataService.cpp
@@ -1,6 +1,6 @@
 /*
  *	ChaosMetadataService.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/ChaosMetadataService.h b/ChaosMetadataService/ChaosMetadataService.h
index e91432d7dc0254aa1a35f6d29462343516d70049..e48e5e654282c3e728e68c79ec346e4c0e0c0288 100644
--- a/ChaosMetadataService/ChaosMetadataService.h
+++ b/ChaosMetadataService/ChaosMetadataService.h
@@ -1,6 +1,6 @@
 /*
  *	ChaosMetadataService.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/api/AbstractApi.cpp b/ChaosMetadataService/api/AbstractApi.cpp
index f6de733d46c951864e18e661edbc90126e48ffc4..c72fb985e7d073d8bd6af5be8d9f7b9f5a7a5d54 100644
--- a/ChaosMetadataService/api/AbstractApi.cpp
+++ b/ChaosMetadataService/api/AbstractApi.cpp
@@ -1,6 +1,6 @@
 /*
  *	AbstractApi.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/api/AbstractApi.h b/ChaosMetadataService/api/AbstractApi.h
index 6873936fa22e57e7eafa16af0f84f070764b43bd..a6072d7452b33c5ee51347bf32f6cd02803686d4 100644
--- a/ChaosMetadataService/api/AbstractApi.h
+++ b/ChaosMetadataService/api/AbstractApi.h
@@ -1,6 +1,6 @@
 /*
  *	AbstractApi.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/api/AbstractApiGroup.cpp b/ChaosMetadataService/api/AbstractApiGroup.cpp
index 670795df5fb20cc630fd0753529434cb59f1d874..1d4bd847342ca1151e25a662ec729fc311f98e50 100644
--- a/ChaosMetadataService/api/AbstractApiGroup.cpp
+++ b/ChaosMetadataService/api/AbstractApiGroup.cpp
@@ -1,6 +1,6 @@
 /*
  *	AbstractApiGroup.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/api/AbstractApiGroup.h b/ChaosMetadataService/api/AbstractApiGroup.h
index 99027c81cc82921c974f058f2ecfd902a66e9821..5a8be26916cbb4f89936e309a885c885c64f0f35 100644
--- a/ChaosMetadataService/api/AbstractApiGroup.h
+++ b/ChaosMetadataService/api/AbstractApiGroup.h
@@ -1,6 +1,6 @@
 /*
  *	AbstractGroup.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/api/ApiManagment.cpp b/ChaosMetadataService/api/ApiManagment.cpp
index a38472ad7f1fbd56d37c6b83cec64d9eea7deecb..5f5c3fd1886de66e1f05a709f7973740a6b125ed 100644
--- a/ChaosMetadataService/api/ApiManagment.cpp
+++ b/ChaosMetadataService/api/ApiManagment.cpp
@@ -1,6 +1,6 @@
 /*
  *	ApiManagment.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/api/ApiManagment.h b/ChaosMetadataService/api/ApiManagment.h
index fc7f1202a0ea12c7f7d402599f24bd107bdd582e..5f66c475da10e3fd5b538c0f8f0656804f18198b 100644
--- a/ChaosMetadataService/api/ApiManagment.h
+++ b/ChaosMetadataService/api/ApiManagment.h
@@ -1,6 +1,6 @@
 /*
  *	ApiManagment.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/api/control_unit/ControlUnitGroup.cpp b/ChaosMetadataService/api/control_unit/ControlUnitGroup.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..704e003b133044c56b125af7cddf12c8238c7172
--- /dev/null
+++ b/ChaosMetadataService/api/control_unit/ControlUnitGroup.cpp
@@ -0,0 +1,40 @@
+/*
+ *	ControlUnitGroup.cpp
+ *	!CHAOS
+ *	Created by Bisegni Claudio.
+ *
+ *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
+ *
+ *    	Licensed under the Apache License, Version 2.0 (the "License");
+ *    	you may not use this file except in compliance with the License.
+ *    	You may obtain a copy of the License at
+ *
+ *    	http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    	Unless required by applicable law or agreed to in writing, software
+ *    	distributed under the License is distributed on an "AS IS" BASIS,
+ *    	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    	See the License for the specific language governing permissions and
+ *    	limitations under the License.
+ */
+#include "ControlUnitGroup.h"
+#include "SetInstanceDescription.h"
+#include "SearchInstancesByUS.h"
+#include "GetInstance.h"
+#include "DeleteInstance.h"
+
+using namespace chaos::metadata_service::api::node;
+DEFINE_CLASS_FACTORY_NO_ALIAS(ControlUnitGroup, chaos::metadata_service::api::AbstractApiGroup);
+
+ControlUnitGroup::ControlUnitGroup():
+AbstractApiGroup("control_unit"){
+        //add api for UnitServer registration
+    addApi<SetInstanceDescription>();
+    addApi<SearchInstancesByUS>();
+    addApi<GetInstance>();
+    addApi<DeleteInstance>();
+}
+
+ControlUnitGroup::~ControlUnitGroup() {
+
+}
\ No newline at end of file
diff --git a/ChaosMetadataService/api/control_unit/ControlUnitGroup.h b/ChaosMetadataService/api/control_unit/ControlUnitGroup.h
new file mode 100644
index 0000000000000000000000000000000000000000..cb80afde239304ed871fbba442a2f71cd1060146
--- /dev/null
+++ b/ChaosMetadataService/api/control_unit/ControlUnitGroup.h
@@ -0,0 +1,43 @@
+/*
+ *	ControlUnitGroup.h
+ *	!CHAOS
+ *	Created by Bisegni Claudio.
+ *
+ *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
+ *
+ *    	Licensed under the Apache License, Version 2.0 (the "License");
+ *    	you may not use this file except in compliance with the License.
+ *    	You may obtain a copy of the License at
+ *
+ *    	http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    	Unless required by applicable law or agreed to in writing, software
+ *    	distributed under the License is distributed on an "AS IS" BASIS,
+ *    	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    	See the License for the specific language governing permissions and
+ *    	limitations under the License.
+ */
+#ifndef __CHAOSFramework__UnitServerApiGroup__
+#define __CHAOSFramework__UnitServerApiGroup__
+
+#include "../AbstractApiGroup.h"
+
+namespace chaos {
+    namespace metadata_service {
+        namespace api {
+            namespace node {
+
+                    //! api group for the managment of the UnitServer
+                DECLARE_CLASS_FACTORY(ControlUnitGroup, AbstractApiGroup) {
+                    REGISTER_AND_DEFINE_DERIVED_CLASS_FACTORY_HELPER(ControlUnitGroup)
+                public:
+                    ControlUnitGroup();
+                    ~ControlUnitGroup();
+                };
+
+            }
+        }
+    }
+}
+
+#endif /* defined(__CHAOSFramework__UnitServerGroup__) */
diff --git a/ChaosMetadataService/api/control_unit/DeleteInstance.cpp b/ChaosMetadataService/api/control_unit/DeleteInstance.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..03bc5d6e3e4acbd6115b9232f1e1848199281886
--- /dev/null
+++ b/ChaosMetadataService/api/control_unit/DeleteInstance.cpp
@@ -0,0 +1,57 @@
+/*
+ *	DeleteInstance.cpp
+ *	!CHAOS
+ *	Created by Bisegni Claudio.
+ *
+ *    	Copyright 2015 INFN, National Institute of Nuclear Physics
+ *
+ *    	Licensed under the Apache License, Version 2.0 (the "License");
+ *    	you may not use this file except in compliance with the License.
+ *    	You may obtain a copy of the License at
+ *
+ *    	http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    	Unless required by applicable law or agreed to in writing, software
+ *    	distributed under the License is distributed on an "AS IS" BASIS,
+ *    	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    	See the License for the specific language governing permissions and
+ *    	limitations under the License.
+ */
+
+#include "DeleteInstance.h"
+
+#include <boost/format.hpp>
+
+using namespace chaos::common::data;
+using namespace chaos::metadata_service::api::node;
+
+#define CU_DI_INFO INFO_LOG(GetInstance)
+#define CU_DI_DBG  DBG_LOG(GetInstance)
+#define CU_DI_ERR  ERR_LOG(GetInstance)
+
+DeleteInstance::DeleteInstance():
+AbstractApi("deleteInstance"){
+
+}
+
+DeleteInstance::~DeleteInstance() {
+
+}
+
+CDataWrapper *DeleteInstance::execute(CDataWrapper *api_data,
+                                      bool& detach_data) throw(chaos::CException) {
+    int err = 0;
+    if(!api_data) {LOG_AND_TROW(CU_DI_ERR, -1, "Search parameter are needed");}
+    if(!api_data->hasKey(chaos::NodeDefinitionKey::NODE_UNIQUE_ID)) {LOG_AND_TROW(CU_DI_ERR, -2, "The ndk_unique_id key (representing the control unit uid) is mandatory");}
+    if(!api_data->hasKey(chaos::NodeDefinitionKey::NODE_PARENT)) {LOG_AND_TROW(CU_DI_ERR, -3, "The ndk_parent key (representing the unit server uid) is mandatory");}
+
+    const std::string cu_uid = api_data->getStringValue(chaos::NodeDefinitionKey::NODE_UNIQUE_ID);
+    const std::string us_uid = api_data->getStringValue(chaos::NodeDefinitionKey::NODE_PARENT);
+
+    GET_DATA_ACCESS(persistence::data_access::ControlUnitDataAccess, cu_da, -4)
+    if((err = cu_da->deleteInstanceDescription(us_uid,
+                                               cu_uid))){
+        LOG_AND_TROW(CU_DI_ERR, err, boost::str(boost::format("Error removing the control unit instance description for cuid:%1% and usuid:%2%") % cu_uid % cu_uid));
+    }
+    return NULL;
+}
\ No newline at end of file
diff --git a/ChaosMetadataService/api/control_unit/DeleteInstance.h b/ChaosMetadataService/api/control_unit/DeleteInstance.h
new file mode 100644
index 0000000000000000000000000000000000000000..8180d802a887c3992df6dd4b66c6125a962e47b3
--- /dev/null
+++ b/ChaosMetadataService/api/control_unit/DeleteInstance.h
@@ -0,0 +1,44 @@
+/*
+ *	DeleteInstance.h
+ *	!CHAOS
+ *	Created by Bisegni Claudio.
+ *
+ *    	Copyright 2015 INFN, National Institute of Nuclear Physics
+ *
+ *    	Licensed under the Apache License, Version 2.0 (the "License");
+ *    	you may not use this file except in compliance with the License.
+ *    	You may obtain a copy of the License at
+ *
+ *    	http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    	Unless required by applicable law or agreed to in writing, software
+ *    	distributed under the License is distributed on an "AS IS" BASIS,
+ *    	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    	See the License for the specific language governing permissions and
+ *    	limitations under the License.
+ */
+
+#ifndef __CHAOSFramework__DeleteInstance__
+#define __CHAOSFramework__DeleteInstance__
+
+#include "../AbstractApi.h"
+
+namespace chaos {
+    namespace metadata_service {
+        namespace api {
+            namespace node {
+                class DeleteInstance:
+                public AbstractApi {
+
+                public:
+                    DeleteInstance();
+                    ~DeleteInstance();
+                    chaos::common::data::CDataWrapper *execute(chaos::common::data::CDataWrapper *api_data,
+                                                               bool& detach_data) throw(chaos::CException);
+                };
+            }
+        }
+    }
+}
+
+#endif /* defined(__CHAOSFramework__DeleteInstance__) */
diff --git a/ChaosMetadataService/api/control_unit/GetInstance.cpp b/ChaosMetadataService/api/control_unit/GetInstance.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..1ae3483f2a9230f8fb190b9d9c6ea41648e45f97
--- /dev/null
+++ b/ChaosMetadataService/api/control_unit/GetInstance.cpp
@@ -0,0 +1,59 @@
+/*
+ *	GetInstance.cpp
+ *	!CHAOS
+ *	Created by Bisegni Claudio.
+ *
+ *    	Copyright 2015 INFN, National Institute of Nuclear Physics
+ *
+ *    	Licensed under the Apache License, Version 2.0 (the "License");
+ *    	you may not use this file except in compliance with the License.
+ *    	You may obtain a copy of the License at
+ *
+ *    	http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    	Unless required by applicable law or agreed to in writing, software
+ *    	distributed under the License is distributed on an "AS IS" BASIS,
+ *    	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    	See the License for the specific language governing permissions and
+ *    	limitations under the License.
+ */
+
+#include "GetInstance.h"
+
+#include <boost/format.hpp>
+
+using namespace chaos::common::data;
+using namespace chaos::metadata_service::api::node;
+
+#define CU_GI_INFO INFO_LOG(GetInstance)
+#define CU_GI_DBG  DBG_LOG(GetInstance)
+#define CU_GI_ERR  ERR_LOG(GetInstance)
+
+GetInstance::GetInstance():
+AbstractApi("getInstance"){
+
+}
+
+GetInstance::~GetInstance() {
+
+}
+
+CDataWrapper *GetInstance::execute(CDataWrapper *api_data,
+                                   bool& detach_data) throw(chaos::CException) {
+
+    if(!api_data) {LOG_AND_TROW(CU_GI_ERR, -1, "Search parameter are needed");}
+    if(!api_data->hasKey(chaos::NodeDefinitionKey::NODE_UNIQUE_ID)) {LOG_AND_TROW(CU_GI_ERR, -2, "The ndk_unique_id key (representing the control unit uid) is mandatory");}
+    if(!api_data->hasKey(chaos::NodeDefinitionKey::NODE_PARENT)) {LOG_AND_TROW(CU_GI_ERR, -3, "The ndk_parent key (representing the unit server uid) is mandatory");}
+
+    int err = 0;
+    CDataWrapper *result = NULL;
+    const std::string cu_uid = api_data->getStringValue(chaos::NodeDefinitionKey::NODE_UNIQUE_ID);
+    const std::string us_uid = api_data->getStringValue(chaos::NodeDefinitionKey::NODE_PARENT);
+    GET_DATA_ACCESS(persistence::data_access::ControlUnitDataAccess, cu_da, -4)
+    if((err = cu_da->getInstanceDescription(us_uid,
+                                            cu_uid,
+                                            &result))){
+        LOG_AND_TROW(CU_GI_ERR, err, boost::str(boost::format("Error fetching the control unit instance description for cuid:%1% and usuid:%2%") % cu_uid % cu_uid));
+    }
+    return result;
+}
\ No newline at end of file
diff --git a/ChaosMetadataService/api/control_unit/GetInstance.h b/ChaosMetadataService/api/control_unit/GetInstance.h
new file mode 100644
index 0000000000000000000000000000000000000000..694bb6865b1e127d1b5383c7f995fe5e685f77cc
--- /dev/null
+++ b/ChaosMetadataService/api/control_unit/GetInstance.h
@@ -0,0 +1,44 @@
+/*
+ *	GetInstance.h
+ *	!CHAOS
+ *	Created by Bisegni Claudio.
+ *
+ *    	Copyright 2015 INFN, National Institute of Nuclear Physics
+ *
+ *    	Licensed under the Apache License, Version 2.0 (the "License");
+ *    	you may not use this file except in compliance with the License.
+ *    	You may obtain a copy of the License at
+ *
+ *    	http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    	Unless required by applicable law or agreed to in writing, software
+ *    	distributed under the License is distributed on an "AS IS" BASIS,
+ *    	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    	See the License for the specific language governing permissions and
+ *    	limitations under the License.
+ */
+
+#ifndef __CHAOSFramework__GetInstance__
+#define __CHAOSFramework__GetInstance__
+
+#include "../AbstractApi.h"
+
+namespace chaos {
+    namespace metadata_service {
+        namespace api {
+            namespace node {
+                class GetInstance:
+                public AbstractApi {
+
+                public:
+                    GetInstance();
+                    ~GetInstance();
+                    chaos::common::data::CDataWrapper *execute(chaos::common::data::CDataWrapper *api_data,
+                                                               bool& detach_data) throw(chaos::CException);
+                };
+            }
+        }
+    }
+}
+
+#endif /* defined(__CHAOSFramework__GetInstance__) */
diff --git a/ChaosMetadataService/api/control_unit/SearchInstancesByUS.cpp b/ChaosMetadataService/api/control_unit/SearchInstancesByUS.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..5252811b795144708cc513fcc21c7493dcb70751
--- /dev/null
+++ b/ChaosMetadataService/api/control_unit/SearchInstancesByUS.cpp
@@ -0,0 +1,89 @@
+/*
+ *	SearchInstancesByUS.cpp
+ *	!CHAOS
+ *	Created by Bisegni Claudio.
+ *
+ *    	Copyright 2015 INFN, National Institute of Nuclear Physics
+ *
+ *    	Licensed under the Apache License, Version 2.0 (the "License");
+ *    	you may not use this file except in compliance with the License.
+ *    	You may obtain a copy of the License at
+ *
+ *    	http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    	Unless required by applicable law or agreed to in writing, software
+ *    	distributed under the License is distributed on an "AS IS" BASIS,
+ *    	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    	See the License for the specific language governing permissions and
+ *    	limitations under the License.
+ */
+#include "SearchInstancesByUS.h"
+
+using namespace chaos::common::data;
+using namespace chaos::metadata_service::api::node;
+
+#define CU_SI_INFO INFO_LOG(SearchInstancesByUS)
+#define CU_SI_DBG  DBG_LOG(SearchInstancesByUS)
+#define CU_SI_ERR  ERR_LOG(SearchInstancesByUS)
+
+SearchInstancesByUS::SearchInstancesByUS():
+AbstractApi("searchInstancesByUS"){
+
+}
+
+SearchInstancesByUS::~SearchInstancesByUS() {
+
+}
+
+CDataWrapper *SearchInstancesByUS::execute(CDataWrapper *api_data,
+                                       bool& detach_data) throw(chaos::CException) {
+    int err = 0;
+    uint32_t last_sequence_id = 0;
+    uint32_t page_length = 30;
+    std::vector<boost::shared_ptr<CDataWrapper> > page_result;
+    std::vector<std::string> cu_type_filter;
+
+    chaos::common::data::CDataWrapper *result = NULL;
+    if(!api_data) {LOG_AND_TROW(CU_SI_ERR, -1, "Search parameter are needed");}
+    if(!api_data->hasKey(chaos::NodeDefinitionKey::NODE_PARENT)) {LOG_AND_TROW(CU_SI_ERR, -2, "The ndk_parent key (representing the unit server uid) is mandatory");}
+
+    if(api_data->hasKey("last_node_sequence_id")) {
+        last_sequence_id = (uint32_t)api_data->getInt32Value("last_node_sequence_id");
+        CU_SI_DBG << "Need to load a new page starting from id:" << last_sequence_id;
+    }
+    if(api_data->hasKey("result_page_length")) {
+        page_length = (uint32_t)api_data->getInt32Value("result_page_length");
+        CU_SI_DBG << "The length of the page has been set to:" << page_length;
+    }
+
+    if(api_data->hasKey("control_unit_implementation")) {
+        auto_ptr<CMultiTypeDataArrayWrapper> cu_t_arr(api_data->getVectorValue("control_unit_implementation"));
+        for(int idx = 0;
+            idx < cu_t_arr->size();
+            idx++) {
+            cu_type_filter.push_back(cu_t_arr->getStringElementAtIndex(idx));
+        }
+    }
+
+        //get node data access
+    GET_DATA_ACCESS(persistence::data_access::ControlUnitDataAccess, cu_da, -2)
+    if((err = cu_da->searchInstanceForUnitServer(page_result,
+                                                 api_data->getStringValue(chaos::NodeDefinitionKey::NODE_PARENT),
+                                                 cu_type_filter,
+                                                 last_sequence_id,
+                                                 page_length))) {
+        LOG_AND_TROW(CU_SI_ERR, err, "Error performing search page")
+    } else {
+        if(page_result.size() > 0) {
+            //add found element to result
+            result = new CDataWrapper();
+            for (std::vector<boost::shared_ptr<CDataWrapper> >::iterator it = page_result.begin();
+                 it != page_result.end();
+                 it++) {
+                result->appendCDataWrapperToArray(*it->get());
+            }
+            result->finalizeArrayForKey("node_search_result_page");
+        }
+    }
+    return result;
+}
\ No newline at end of file
diff --git a/ChaosMetadataService/api/control_unit/SearchInstancesByUS.h b/ChaosMetadataService/api/control_unit/SearchInstancesByUS.h
new file mode 100644
index 0000000000000000000000000000000000000000..bb56ec339b446c0db66e6914c3c484dc0386f031
--- /dev/null
+++ b/ChaosMetadataService/api/control_unit/SearchInstancesByUS.h
@@ -0,0 +1,45 @@
+/*
+ *	SearchInstancesByUS.h
+ *	!CHAOS
+ *	Created by Bisegni Claudio.
+ *
+ *    	Copyright 2015 INFN, National Institute of Nuclear Physics
+ *
+ *    	Licensed under the Apache License, Version 2.0 (the "License");
+ *    	you may not use this file except in compliance with the License.
+ *    	You may obtain a copy of the License at
+ *
+ *    	http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    	Unless required by applicable law or agreed to in writing, software
+ *    	distributed under the License is distributed on an "AS IS" BASIS,
+ *    	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    	See the License for the specific language governing permissions and
+ *    	limitations under the License.
+ */
+#ifndef __CHAOSFramework__SearchInstancesByUS__
+#define __CHAOSFramework__SearchInstancesByUS__
+
+#include "../AbstractApi.h"
+
+namespace chaos {
+    namespace metadata_service {
+        namespace api {
+            namespace node {
+
+                class SearchInstancesByUS:
+                public AbstractApi {
+
+                public:
+                    SearchInstancesByUS();
+                    ~SearchInstancesByUS();
+                    chaos::common::data::CDataWrapper *execute(chaos::common::data::CDataWrapper *api_data,
+                                                               bool& detach_data) throw(chaos::CException);
+                };
+                
+            }
+        }
+    }
+}
+
+#endif /* defined(__CHAOSFramework__SearchInstancesByUS__) */
diff --git a/ChaosMetadataService/api/control_unit/SetInstanceDescription.cpp b/ChaosMetadataService/api/control_unit/SetInstanceDescription.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..49185c13923c40156a05990c1c3041c98370859b
--- /dev/null
+++ b/ChaosMetadataService/api/control_unit/SetInstanceDescription.cpp
@@ -0,0 +1,83 @@
+/*
+ *	SetInstanceDescription.cpp
+ *	!CHAOS
+ *	Created by Bisegni Claudio.
+ *
+ *    	Copyright 2015 INFN, National Institute of Nuclear Physics
+ *
+ *    	Licensed under the Apache License, Version 2.0 (the "License");
+ *    	you may not use this file except in compliance with the License.
+ *    	You may obtain a copy of the License at
+ *
+ *    	http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    	Unless required by applicable law or agreed to in writing, software
+ *    	distributed under the License is distributed on an "AS IS" BASIS,
+ *    	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    	See the License for the specific language governing permissions and
+ *    	limitations under the License.
+ */
+#include "SetInstanceDescription.h"
+#include <boost/format.hpp>
+
+using namespace chaos::common::data;
+using namespace chaos::metadata_service::api::node;
+
+#define CUCUI_INFO INFO_LOG(SetInstanceDescription)
+#define CUCUI_DBG  DBG_LOG(SetInstanceDescription)
+#define CUCUI_ERR  ERR_LOG(SetInstanceDescription)
+
+SetInstanceDescription::SetInstanceDescription():
+AbstractApi("setInstanceDescription"){
+
+}
+
+SetInstanceDescription::~SetInstanceDescription() {
+
+}
+
+chaos::common::data::CDataWrapper *SetInstanceDescription::execute(chaos::common::data::CDataWrapper *api_data,
+                                                                   bool& detach_data) throw(chaos::CException) {
+
+    int err = 0;
+    bool presence = false;
+    if(!api_data->hasKey(NodeDefinitionKey::NODE_UNIQUE_ID)) {
+        LOG_AND_TROW(CUCUI_ERR, -1, "Node unique id is mandatory")
+    }
+    if(!api_data->hasKey("instance_description")) {
+        LOG_AND_TROW(CUCUI_ERR, -2, "the instance description need to be associated to a the key 'instance_description'");
+    }
+
+        //!get the unit server data access
+    persistence::data_access::ControlUnitDataAccess *cu_da = getPersistenceDriver()->getDataAccess<persistence::data_access::ControlUnitDataAccess>();
+    persistence::data_access::NodeDataAccess *n_da = getPersistenceDriver()->getDataAccess<persistence::data_access::NodeDataAccess>();
+    if((err = n_da->checkNodePresence(api_data->getStringValue(NodeDefinitionKey::NODE_UNIQUE_ID), presence))){
+        LOG_AND_TROW(CUCUI_ERR, err, "Error checking node presence")
+    }
+    if (!presence) {
+        auto_ptr<CDataWrapper> node_min_dec(new CDataWrapper());
+        node_min_dec->addStringValue(NodeDefinitionKey::NODE_UNIQUE_ID, api_data->getStringValue(NodeDefinitionKey::NODE_UNIQUE_ID));
+        node_min_dec->addStringValue(NodeDefinitionKey::NODE_TYPE, api_data->getStringValue(NodeDefinitionKey::NODE_TYPE));
+            //need to be create a new empty node
+        if((err = cu_da->insertNewControlUnit(*node_min_dec.get()))) {
+            LOG_AND_TROW(CUCUI_ERR, err, "Error during new node creation")
+        }
+    }
+
+        //set the instance whiting the control unit node
+        //create the subobject for the instance that need to be insert within the global node
+    auto_ptr<CDataWrapper> instance_desc(api_data->getCSDataValue("instance_description"));
+        //insert the instance
+    if(!instance_desc->hasKey(chaos::NodeDefinitionKey::NODE_PARENT)) {
+        LOG_AND_TROW(CUCUI_ERR, -3, "The instance description need to have the unique id of the parent unit server.")
+    }
+
+    if(!instance_desc->hasKey("control_unit_implementation")) {
+        LOG_AND_TROW(CUCUI_ERR, -3, "The control unit implementaiton is mandatory within the instance description")
+    }
+        //
+    if((err = cu_da->setInstanceDescription(api_data->getStringValue(NodeDefinitionKey::NODE_UNIQUE_ID), *instance_desc.get()))) {
+        LOG_AND_TROW(CUCUI_ERR, err, boost::str(boost::format("Error creating control unit instance description for node:%1%") % api_data->getStringValue(NodeDefinitionKey::NODE_UNIQUE_ID)))
+    }
+    return NULL;
+}
\ No newline at end of file
diff --git a/ChaosMetadataService/api/control_unit/SetInstanceDescription.h b/ChaosMetadataService/api/control_unit/SetInstanceDescription.h
new file mode 100644
index 0000000000000000000000000000000000000000..1cf2bc8d4287b3ac269050cf0661a51618cec4b3
--- /dev/null
+++ b/ChaosMetadataService/api/control_unit/SetInstanceDescription.h
@@ -0,0 +1,44 @@
+/*
+ *	SetInstanceDescription.h
+ *	!CHAOS
+ *	Created by Bisegni Claudio.
+ *
+ *    	Copyright 2015 INFN, National Institute of Nuclear Physics
+ *
+ *    	Licensed under the Apache License, Version 2.0 (the "License");
+ *    	you may not use this file except in compliance with the License.
+ *    	You may obtain a copy of the License at
+ *
+ *    	http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    	Unless required by applicable law or agreed to in writing, software
+ *    	distributed under the License is distributed on an "AS IS" BASIS,
+ *    	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    	See the License for the specific language governing permissions and
+ *    	limitations under the License.
+ */
+#ifndef __CHAOSFramework__SetInstanceDescription__
+#define __CHAOSFramework__SetInstanceDescription__
+
+#include "../AbstractApi.h"
+
+namespace chaos {
+    namespace metadata_service {
+        namespace api {
+            namespace node {
+
+                class SetInstanceDescription:
+                public AbstractApi {
+
+                public:
+                    SetInstanceDescription();
+                    ~SetInstanceDescription();
+                    chaos::common::data::CDataWrapper *execute(chaos::common::data::CDataWrapper *api_data,
+                                                               bool& detach_data) throw(chaos::CException);
+                };
+
+            }
+        }
+    }
+}
+#endif /* defined(__CHAOSFramework__SetInstanceDescription__) */
diff --git a/ChaosMetadataService/api/node/NodeCreateUnitServer.cpp b/ChaosMetadataService/api/node/NodeCreateUnitServer.cpp
index d6ce92cef45fc26d0d0dbed20e49c6e0b6b6bb5e..c668ef200e7b868da4a27d13531e54728e3fa54c 100644
--- a/ChaosMetadataService/api/node/NodeCreateUnitServer.cpp
+++ b/ChaosMetadataService/api/node/NodeCreateUnitServer.cpp
@@ -1,6 +1,6 @@
 /*
  *	NodeCreateUnitServer.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/api/node/NodeCreateUnitServer.h b/ChaosMetadataService/api/node/NodeCreateUnitServer.h
index a5f88930c37e3e369739897d6445388e3bf426e8..a4e40e5edab73e49fee21dc67c189d3e69909e39 100644
--- a/ChaosMetadataService/api/node/NodeCreateUnitServer.h
+++ b/ChaosMetadataService/api/node/NodeCreateUnitServer.h
@@ -1,6 +1,6 @@
 /*
  *	NodeCreateUnitServer.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/api/node/NodeGetDescription.cpp b/ChaosMetadataService/api/node/NodeGetDescription.cpp
index 86f8f63dac9addbbfda3769ca71e054439a8ae91..7c2fd88bcc507a823cd2fa9d424009d729d56c24 100644
--- a/ChaosMetadataService/api/node/NodeGetDescription.cpp
+++ b/ChaosMetadataService/api/node/NodeGetDescription.cpp
@@ -1,6 +1,6 @@
 /*
  *	NodeGetDescription.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/api/node/NodeGetDescription.h b/ChaosMetadataService/api/node/NodeGetDescription.h
index 38f8593b30b35372e1629606bebeab29247d17ec..05002e267697a86c9cc29ea1df2ab70c3c5b62a5 100644
--- a/ChaosMetadataService/api/node/NodeGetDescription.h
+++ b/ChaosMetadataService/api/node/NodeGetDescription.h
@@ -1,6 +1,6 @@
 /*
  *	NodeGetDescription.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/api/node/NodeGroup.cpp b/ChaosMetadataService/api/node/NodeGroup.cpp
index d49b7bb934e2be6afeeca9de90d2cef0d5e3a02d..6eb3ed7d3cffba60944c5334c75e1b78a94a54f7 100644
--- a/ChaosMetadataService/api/node/NodeGroup.cpp
+++ b/ChaosMetadataService/api/node/NodeGroup.cpp
@@ -1,6 +1,6 @@
 /*
  *	NodeApi.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/api/node/NodeGroup.h b/ChaosMetadataService/api/node/NodeGroup.h
index 029fac6c5e40773b618b0f41d06c8c37035751b7..8792477b5226cfd18b31fbf161f8ecf629b752a0 100644
--- a/ChaosMetadataService/api/node/NodeGroup.h
+++ b/ChaosMetadataService/api/node/NodeGroup.h
@@ -1,6 +1,6 @@
 /*
  *	NodeApiGroup.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/api/node/NodeRegister.cpp b/ChaosMetadataService/api/node/NodeRegister.cpp
index 13e0489eec169f412b577bb6cb1c1f335e8f2f9d..47382d2828775381edd1eb6d527f46f65e272206 100644
--- a/ChaosMetadataService/api/node/NodeRegister.cpp
+++ b/ChaosMetadataService/api/node/NodeRegister.cpp
@@ -1,6 +1,6 @@
 /*
  *	NodeRegister.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/api/node/NodeRegister.h b/ChaosMetadataService/api/node/NodeRegister.h
index 55ae7ee33844ad2a5dddb7459a1a63af83710dc2..0f81e1cbe159736ea9295e9aeb706164fbee0770 100644
--- a/ChaosMetadataService/api/node/NodeRegister.h
+++ b/ChaosMetadataService/api/node/NodeRegister.h
@@ -1,6 +1,6 @@
 /*
  *	NodeRegister.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/api/node/NodeSearch.cpp b/ChaosMetadataService/api/node/NodeSearch.cpp
index df555e0ba2a7ff4f2917009face0dbb5db196f1f..c89e1f091fac080ff1de6b2e097bcced35032217 100644
--- a/ChaosMetadataService/api/node/NodeSearch.cpp
+++ b/ChaosMetadataService/api/node/NodeSearch.cpp
@@ -1,6 +1,6 @@
 /*
  *	NodeSearch.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/api/node/NodeSearch.h b/ChaosMetadataService/api/node/NodeSearch.h
index ec88379e06448b625c28e1b4818bedc62c86c544..74ff9e611184ca58d295c511a13093fa977f0d11 100644
--- a/ChaosMetadataService/api/node/NodeSearch.h
+++ b/ChaosMetadataService/api/node/NodeSearch.h
@@ -1,6 +1,6 @@
 /*
  *	NodeSearch.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/api/producer/ProducerApiGroup.cpp b/ChaosMetadataService/api/producer/ProducerApiGroup.cpp
index 1afbb8218e23032f5bee02b5dcac97c8adb0fd4f..e56051636d715453b2e458189874edcb4a750e74 100644
--- a/ChaosMetadataService/api/producer/ProducerApiGroup.cpp
+++ b/ChaosMetadataService/api/producer/ProducerApiGroup.cpp
@@ -1,6 +1,6 @@
 /*
  *	ProducerApiGroup.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/api/producer/ProducerApiGroup.h b/ChaosMetadataService/api/producer/ProducerApiGroup.h
index b591cf2c82a68fd2926566fc89bdb143b1bfc861..9b52a01f6f93d804012998a1389809a3331ee88d 100644
--- a/ChaosMetadataService/api/producer/ProducerApiGroup.h
+++ b/ChaosMetadataService/api/producer/ProducerApiGroup.h
@@ -1,6 +1,6 @@
 /*
  *	ProducerApiGroup.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/api/producer/ProducerRegisterApi.cpp b/ChaosMetadataService/api/producer/ProducerRegisterApi.cpp
index 71ff5921c2cac9777372b0dcae5b4d3a46a949e2..d6b6eb288f94f6738e34d1ca641bf1b383e1f8d3 100644
--- a/ChaosMetadataService/api/producer/ProducerRegisterApi.cpp
+++ b/ChaosMetadataService/api/producer/ProducerRegisterApi.cpp
@@ -1,6 +1,6 @@
 /*
  *	ProducerRegisterApi.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/api/producer/ProducerRegisterApi.h b/ChaosMetadataService/api/producer/ProducerRegisterApi.h
index eeb5477cd6ef5bd36118210c4f7351bb1eb76cae..d3412094f2e85473a7e714f94bd3599c0a9f5c2b 100644
--- a/ChaosMetadataService/api/producer/ProducerRegisterApi.h
+++ b/ChaosMetadataService/api/producer/ProducerRegisterApi.h
@@ -1,6 +1,6 @@
 /*
  *	ProducerRegisterApi.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/batch/MDSBatchCommand.cpp b/ChaosMetadataService/batch/MDSBatchCommand.cpp
index 6f5734e4580a56a6bf3bf2806d8622decaf19d94..57c213d0b790528be9cddee0ce09df0f7175ecb1 100644
--- a/ChaosMetadataService/batch/MDSBatchCommand.cpp
+++ b/ChaosMetadataService/batch/MDSBatchCommand.cpp
@@ -1,6 +1,6 @@
 /*
  *  BatchCommand.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/batch/MDSBatchCommand.h b/ChaosMetadataService/batch/MDSBatchCommand.h
index c5ab698f0efd585878a98cdcfbc49f8550c17284..224153d62b18796a0c64fe343df4dd49dc800e80 100644
--- a/ChaosMetadataService/batch/MDSBatchCommand.h
+++ b/ChaosMetadataService/batch/MDSBatchCommand.h
@@ -1,6 +1,6 @@
 /*
  *	BatchCommand.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/batch/MDSBatchExecutor.cpp b/ChaosMetadataService/batch/MDSBatchExecutor.cpp
index 4893dd366729946ee80d19916b940b53290d89ef..ac2e5b1d5924403f9bc9a9e8f9565b20ae402a1a 100644
--- a/ChaosMetadataService/batch/MDSBatchExecutor.cpp
+++ b/ChaosMetadataService/batch/MDSBatchExecutor.cpp
@@ -1,6 +1,6 @@
 /*
  *	MDSBatchExecutor.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/batch/MDSBatchExecutor.h b/ChaosMetadataService/batch/MDSBatchExecutor.h
index 2966ba2cc153244e268ddb8d0d301357d46b5803..37eb75ca43a97fd6e72d5c03dd017645f19e3adf 100644
--- a/ChaosMetadataService/batch/MDSBatchExecutor.h
+++ b/ChaosMetadataService/batch/MDSBatchExecutor.h
@@ -1,6 +1,6 @@
 /*
  *	BatchExecutor.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/batch/mds_service_batch.h b/ChaosMetadataService/batch/mds_service_batch.h
index 703f7f9eb0bdc600809afc156bc13630480f19ee..c1799b5b2fad5b3b32b2aefadf6f82e925044af0 100644
--- a/ChaosMetadataService/batch/mds_service_batch.h
+++ b/ChaosMetadataService/batch/mds_service_batch.h
@@ -1,6 +1,6 @@
 /*
  *	mds_service_batch.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/batch/unit_server/UnitServerAckBatchCommand.cpp b/ChaosMetadataService/batch/unit_server/UnitServerAckBatchCommand.cpp
index 428dc8ffeed2d043b1e61b20c0010c4ac21c34bd..387507cef57d3e9186a7e062cfac7522c83d0852 100644
--- a/ChaosMetadataService/batch/unit_server/UnitServerAckBatchCommand.cpp
+++ b/ChaosMetadataService/batch/unit_server/UnitServerAckBatchCommand.cpp
@@ -1,6 +1,6 @@
 /*
  *	UnitServerAckCommand.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/batch/unit_server/UnitServerAckBatchCommand.h b/ChaosMetadataService/batch/unit_server/UnitServerAckBatchCommand.h
index 0ed1652544a3aeb24cac7848c4506802259a4a7b..066653588061d82f99f46f2c48c03fbbae7c6485 100644
--- a/ChaosMetadataService/batch/unit_server/UnitServerAckBatchCommand.h
+++ b/ChaosMetadataService/batch/unit_server/UnitServerAckBatchCommand.h
@@ -1,6 +1,6 @@
 /*
  *	UnitServerAckCommand.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/batch/unit_server/unit_server_batch.h b/ChaosMetadataService/batch/unit_server/unit_server_batch.h
index 607e8f02f08a6adcbad3fe39512ba9aa5373ea1c..6502f703024a2c30e896f873c8a7282164ac7cb8 100644
--- a/ChaosMetadataService/batch/unit_server/unit_server_batch.h
+++ b/ChaosMetadataService/batch/unit_server/unit_server_batch.h
@@ -1,6 +1,6 @@
 /*
  *	unit_server_batch.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/main.cpp b/ChaosMetadataService/main.cpp
index 8ee5480d5fd370bf12d682ff2c6d4542d9f41148..d25eef9ad6a4825cdfcb6705c1886b22f870b96c 100644
--- a/ChaosMetadataService/main.cpp
+++ b/ChaosMetadataService/main.cpp
@@ -1,6 +1,6 @@
 /*
  *	main.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/mds_types.h b/ChaosMetadataService/mds_types.h
index af8f9a7287c19aead9b8c84b8a27eda3a1da12a6..2127efd7765d435d7ee8d74776182ec7cbe6733b 100644
--- a/ChaosMetadataService/mds_types.h
+++ b/ChaosMetadataService/mds_types.h
@@ -1,6 +1,6 @@
 /*
  *  mds_types.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/persistence/data_access/ControlUnitDataAccess.cpp b/ChaosMetadataService/persistence/data_access/ControlUnitDataAccess.cpp
index b2fcddd91f64b2bbd8bd4e1de3a9893d164ed256..d83f5b0d500c28c31910855a248f8da0cbf3e5c8 100644
--- a/ChaosMetadataService/persistence/data_access/ControlUnitDataAccess.cpp
+++ b/ChaosMetadataService/persistence/data_access/ControlUnitDataAccess.cpp
@@ -1,6 +1,6 @@
 /*
  *	ControlUnitDataAccess.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/persistence/data_access/ControlUnitDataAccess.h b/ChaosMetadataService/persistence/data_access/ControlUnitDataAccess.h
index 1466aa78cabec3e7ab41954443abf3e3ec3a8efb..d863b1b81b0a549f0e620bbb7a04ac65e37fd78f 100644
--- a/ChaosMetadataService/persistence/data_access/ControlUnitDataAccess.h
+++ b/ChaosMetadataService/persistence/data_access/ControlUnitDataAccess.h
@@ -1,6 +1,6 @@
 /*
  *	ControlUnitDataAccess.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
@@ -21,7 +21,11 @@
 #define __CHAOSFramework__ControlUnitDataAccess__
 
 #include "../persistence.h"
+
 #include <chaos/common/data/CDatawrapper.h>
+
+#include <boost/smart_ptr.hpp>
+
 namespace chaos {
     namespace metadata_service {
         namespace persistence {
@@ -47,6 +51,22 @@ namespace chaos {
                     virtual int checkDatasetPresence(chaos::common::data::CDataWrapper& dataset_description) = 0;
                     
                     virtual int getLastDataset(chaos::common::data::CDataWrapper& dataset_description) = 0;
+
+                    virtual int setInstanceDescription(const std::string& cu_unique_id,
+                                                       chaos::common::data::CDataWrapper& instance_description) = 0;
+
+                    virtual int searchInstanceForUnitServer(std::vector<boost::shared_ptr<common::data::CDataWrapper> >& result_page,
+                                                            const std::string& unit_server_uid,
+                                                            std::vector<std::string> cu_type_filter,
+                                                            uint32_t last_sequence_id,
+                                                            uint32_t results_for_page) = 0;
+
+                    virtual int getInstanceDescription(const std::string& unit_server_uid,
+                                                       const std::string& control_unit_uid,
+                                                       chaos::common::data::CDataWrapper **result) = 0;
+
+                    virtual int deleteInstanceDescription(const std::string& unit_server_uid,
+                                                          const std::string& control_unit_uid) = 0;
                 };
                 
             }
diff --git a/ChaosMetadataService/persistence/data_access/DataAccess.h b/ChaosMetadataService/persistence/data_access/DataAccess.h
index c57766c411d59d19ad16bf5722071282c4493ed0..f875356c75418d8b92aff43a4a98b3e392bb6c78 100644
--- a/ChaosMetadataService/persistence/data_access/DataAccess.h
+++ b/ChaosMetadataService/persistence/data_access/DataAccess.h
@@ -1,6 +1,6 @@
 /*
  *	DataAccess.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/persistence/data_access/NodeDataAccess.cpp b/ChaosMetadataService/persistence/data_access/NodeDataAccess.cpp
index eb4488ac2224a0709ff4ba26ec3fee4dfad09b4e..14154a63fc435bed9156bc7df9892b4614ed7ce8 100644
--- a/ChaosMetadataService/persistence/data_access/NodeDataAccess.cpp
+++ b/ChaosMetadataService/persistence/data_access/NodeDataAccess.cpp
@@ -1,6 +1,6 @@
 /*
  *	NodeRegisterApi.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/persistence/data_access/NodeDataAccess.h b/ChaosMetadataService/persistence/data_access/NodeDataAccess.h
index 56cb8b6ca4928761a27188efae35b7e5b97ae21d..ececd95c8cf062c02f65620178cbd218235ed366 100644
--- a/ChaosMetadataService/persistence/data_access/NodeDataAccess.h
+++ b/ChaosMetadataService/persistence/data_access/NodeDataAccess.h
@@ -1,6 +1,6 @@
 /*
  *	NodeDataAccess.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/persistence/data_access/UnitServerDataAccess.cpp b/ChaosMetadataService/persistence/data_access/UnitServerDataAccess.cpp
index 4045c87da86188cae4955a297559d12ab38a3ee7..6e800cd8f2fdd9375905a2caae43c2eb21989bce 100644
--- a/ChaosMetadataService/persistence/data_access/UnitServerDataAccess.cpp
+++ b/ChaosMetadataService/persistence/data_access/UnitServerDataAccess.cpp
@@ -1,6 +1,6 @@
 /*
  *	UnitServerDataAccess.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/persistence/data_access/UnitServerDataAccess.h b/ChaosMetadataService/persistence/data_access/UnitServerDataAccess.h
index e99f4afbd42d51a64f0d0c19f131e66a992f2562..8eecd47621f088bcb0bbcc9adcbfa62090330467 100644
--- a/ChaosMetadataService/persistence/data_access/UnitServerDataAccess.h
+++ b/ChaosMetadataService/persistence/data_access/UnitServerDataAccess.h
@@ -1,6 +1,6 @@
 /*
  *	UnitServerDataAccess.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/persistence/data_access/UtilityDataAccess.cpp b/ChaosMetadataService/persistence/data_access/UtilityDataAccess.cpp
index 883dfafa9bb48ff8c6a1b6684095eb42284f56a1..6a9e8e3c017efdab6af538fafb32ebd138cc5f08 100644
--- a/ChaosMetadataService/persistence/data_access/UtilityDataAccess.cpp
+++ b/ChaosMetadataService/persistence/data_access/UtilityDataAccess.cpp
@@ -1,6 +1,6 @@
 /*
  *	UtilityDataAccess.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/persistence/data_access/UtilityDataAccess.h b/ChaosMetadataService/persistence/data_access/UtilityDataAccess.h
index 4cae4168f92443f764e897bb64c202e410dc941b..c88f56e60e5116c69dcf2967b717885360b5bc60 100644
--- a/ChaosMetadataService/persistence/data_access/UtilityDataAccess.h
+++ b/ChaosMetadataService/persistence/data_access/UtilityDataAccess.h
@@ -1,6 +1,6 @@
 /*
  *	UtilityDataAccess.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/persistence/mongodb/MongoDBControlUnitDataAccess.cpp b/ChaosMetadataService/persistence/mongodb/MongoDBControlUnitDataAccess.cpp
index c24c3036f2bdd8f2bbd447581b25f12e765ca9f4..60ceec7da0d71d22ed91448664e53b8fcb1d90ce 100644
--- a/ChaosMetadataService/persistence/mongodb/MongoDBControlUnitDataAccess.cpp
+++ b/ChaosMetadataService/persistence/mongodb/MongoDBControlUnitDataAccess.cpp
@@ -1,6 +1,6 @@
 /*
  *	MongoDBControlUnitDataAccess.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
@@ -29,19 +29,29 @@
 #define MDBCUDA_ERR  ERR_LOG(MongoDBControlUnitDataAccess)
 
 using namespace chaos::common::data;
+
+using namespace chaos::service_common::persistence::mongodb;
+
 using namespace chaos::metadata_service::persistence::mongodb;
 
 MongoDBControlUnitDataAccess::MongoDBControlUnitDataAccess(const boost::shared_ptr<service_common::persistence::mongodb::MongoDBHAConnectionManager>& _connection):
 MongoDBAccessor(_connection){
-    
+
 }
 
 MongoDBControlUnitDataAccess::~MongoDBControlUnitDataAccess() {
-    
+
 }
 
 int MongoDBControlUnitDataAccess::insertNewControlUnit(chaos::common::data::CDataWrapper& control_unit_description) {
     int err = 0;
+    if(!control_unit_description.hasKey(chaos::NodeDefinitionKey::NODE_TYPE)) {
+            //set he ndoe type as control unit
+        control_unit_description.addStringValue(chaos::NodeDefinitionKey::NODE_TYPE, chaos::NodeType::NODE_TYPE_CONTROL_UNIT);
+    }
+    if((err = node_data_access->insertNewNode(control_unit_description))) {
+        MDBCUDA_ERR << "Error:" << err << " adding new node for control unit";
+    }
     return err;
 }
 
@@ -66,3 +76,251 @@ int MongoDBControlUnitDataAccess::getLastDataset(chaos::common::data::CDataWrapp
     int err = 0;
     return err;
 }
+
+int MongoDBControlUnitDataAccess::setInstanceDescription(const std::string& cu_unique_id,
+                                                         chaos::common::data::CDataWrapper& instance_description) {
+    int err = 0;
+        //allocate data block on vfat
+    mongo::BSONObjBuilder bson_find;
+    mongo::BSONObjBuilder updated_field;
+    mongo::BSONObjBuilder bson_update;
+    MDBCUDA_DBG << instance_description.getJSONString();
+    try {
+
+        if(!instance_description.hasKey(chaos::NodeDefinitionKey::NODE_PARENT)) return -1;
+
+            //serach criteria
+        bson_find   << chaos::NodeDefinitionKey::NODE_UNIQUE_ID << cu_unique_id
+        << chaos::NodeDefinitionKey::NODE_TYPE << chaos::NodeType::NODE_TYPE_CONTROL_UNIT;
+
+            //add the load_at_startup field
+        updated_field << chaos::NodeDefinitionKey::NODE_PARENT << instance_description.getStringValue(chaos::NodeDefinitionKey::NODE_PARENT)
+        << "auto_load" << (bool)(instance_description.hasKey("auto_load")?instance_description.getBoolValue("auto_load"):false);
+
+            //add unit server parent
+
+        if(instance_description.hasKey("load_parameter")) {
+            updated_field << "load_parameter" << instance_description.getStringValue("load_parameter");
+        }
+
+        if(instance_description.hasKey("control_unit_implementation")) {
+            updated_field << "control_unit_implementation" << instance_description.getStringValue("control_unit_implementation");
+        }
+
+            //check if have the driver description
+        if(instance_description.hasKey("driver_description")) {
+                //get the contained control unit type
+            mongo::BSONArrayBuilder bab;
+            auto_ptr<CMultiTypeDataArrayWrapper> drv_array(instance_description.getVectorValue("driver_description"));
+            for(int idx = 0;
+                idx < drv_array->size();
+                idx++) {
+                auto_ptr<CDataWrapper> driver_desc(drv_array->getCDataWrapperElementAtIndex(idx));
+                if(driver_desc->hasKey("name") &&
+                   driver_desc->hasKey("version")&&
+                   driver_desc->hasKey("init_parameter")) {
+                    int size;
+                    CDataWrapper d;
+                    d.addStringValue("name", driver_desc->getStringValue("name"));
+                    d.addStringValue("version", driver_desc->getStringValue("version"));
+                    d.addStringValue("init_parameter", driver_desc->getStringValue("init_parameter"));
+                    bab << mongo::BSONObj(d.getBSONRawData(size));
+                }
+
+            }
+                //bind the array to the key
+            updated_field.appendArray("driver_description", bab.arr());
+        }
+
+            //check if we have the attribute setup
+        if(instance_description.hasKey("attribute_value_descriptions")) {
+                //get the contained control unit type
+            mongo::BSONArrayBuilder bab;
+            auto_ptr<CMultiTypeDataArrayWrapper> attr_array(instance_description.getVectorValue("attribute_value_descriptions"));
+            for(int idx = 0;
+                idx < attr_array->size();
+                idx++) {
+                auto_ptr<CDataWrapper> attr_desc(attr_array->getCDataWrapperElementAtIndex(idx));
+                if(attr_desc->hasKey(chaos::ControlUnitNodeDefinitionKey::CONTROL_UNIT_DATASET_ATTRIBUTE_NAME) &&
+                   attr_desc->hasKey(chaos::ControlUnitNodeDefinitionKey::CONTROL_UNIT_DATASET_DEFAULT_VALUE)) {
+                    int size;
+                    CDataWrapper a;
+                    a.addStringValue(chaos::ControlUnitNodeDefinitionKey::CONTROL_UNIT_DATASET_ATTRIBUTE_NAME, attr_desc->getStringValue(chaos::ControlUnitNodeDefinitionKey::CONTROL_UNIT_DATASET_ATTRIBUTE_NAME));
+                    a.addStringValue(chaos::ControlUnitNodeDefinitionKey::CONTROL_UNIT_DATASET_DEFAULT_VALUE, attr_desc->getStringValue(chaos::ControlUnitNodeDefinitionKey::CONTROL_UNIT_DATASET_DEFAULT_VALUE));
+                    if(attr_desc->hasKey(chaos::ControlUnitNodeDefinitionKey::CONTROL_UNIT_DATASET_MAX_RANGE)) a.addStringValue(chaos::ControlUnitNodeDefinitionKey::CONTROL_UNIT_DATASET_MAX_RANGE, attr_desc->getStringValue(chaos::ControlUnitNodeDefinitionKey::CONTROL_UNIT_DATASET_MAX_RANGE));
+                    if(attr_desc->hasKey(chaos::ControlUnitNodeDefinitionKey::CONTROL_UNIT_DATASET_MIN_RANGE)) a.addStringValue(chaos::ControlUnitNodeDefinitionKey::CONTROL_UNIT_DATASET_MIN_RANGE, attr_desc->getStringValue(chaos::ControlUnitNodeDefinitionKey::CONTROL_UNIT_DATASET_MIN_RANGE));
+                        //add object to array
+                    bab << mongo::BSONObj(a.getBSONRawData(size));
+                }
+            }
+                //bind the array to the key
+            updated_field.appendArray("attribute_value_descriptions", bab.arr());
+        }
+
+
+        mongo::BSONObj query = bson_find.obj();
+        mongo::BSONObj update = BSON("$set" << BSON("instance_description" << updated_field.obj()));
+
+        DEBUG_CODE(MDBCUDA_DBG << "setInstanceDescription update ---------------------------------------------";)
+        DEBUG_CODE(MDBCUDA_DBG << "Query: "  << query.jsonString();)
+        DEBUG_CODE(MDBCUDA_DBG << "Update: "  << update.jsonString();)
+        DEBUG_CODE(MDBCUDA_DBG << "setInstanceDescription update ---------------------------------------------";)
+
+            //set the instance parameter within the node representing the control unit
+        if((err = connection->update(MONGO_DB_COLLECTION_NAME(getDatabaseName().c_str(), MONGODB_COLLECTION_NODES),
+                                     query,
+                                     update))) {
+            MDBCUDA_ERR << "Error updating unit server";
+        }
+    } catch (const mongo::DBException &e) {
+        MDBCUDA_ERR << e.what();
+        err = -1;
+    } catch (const chaos::CException &e) {
+        MDBCUDA_ERR << e.what();
+        err = e.errorCode;
+    }
+    return err;
+}
+
+int MongoDBControlUnitDataAccess::searchInstanceForUnitServer(std::vector<boost::shared_ptr<chaos::common::data::CDataWrapper> >& result_page,
+                                                              const std::string& unit_server_uid,
+                                                              std::vector<std::string> cu_type_filter,
+                                                              uint32_t last_sequence_id,
+                                                              uint32_t results_for_page) {
+    int err = 0;
+    mongo::BSONObjBuilder   bson_find;
+    mongo::BSONArrayBuilder bson_find_or;
+    mongo::BSONArrayBuilder bson_find_and;
+    SearchResult            paged_result;
+
+        //compose query
+
+        //filter on sequence, type and unit server
+    bson_find_and << BSON(chaos::NodeDefinitionKey::NODE_TYPE << chaos::NodeType::NODE_TYPE_CONTROL_UNIT);
+    bson_find_and << BSON(boost::str(boost::format("instance_description.%1%") % chaos::NodeDefinitionKey::NODE_PARENT) << unit_server_uid);
+
+        //add cu types
+    if(cu_type_filter.size()) {
+        for(std::vector<std::string>::iterator it = cu_type_filter.begin();
+            it != cu_type_filter.end();
+            it++) {
+            bson_find_or << BSON("instance_description.control_unit_implementation" << *it);
+        }
+        bson_find_and << BSON("$or" << bson_find_or.arr());
+    }
+    bson_find.appendArray("$and", bson_find_and.obj());
+        // filter on node unique id
+
+    mongo::BSONObj q = bson_find.obj();
+        // mongo::BSONObj p =  BSON(chaos::NodeDefinitionKey::NODE_UNIQUE_ID<<1);
+    DEBUG_CODE(MDBCUDA_DBG << "searchInstanceForUnitServer performPagedQuery ---------------------------------------------";)
+    DEBUG_CODE(MDBCUDA_DBG << "Query: "  << q.jsonString();)
+    DEBUG_CODE(MDBCUDA_DBG << "searchInstanceForUnitServer performPagedQuery ---------------------------------------------";)
+
+        //perform the search for the query page
+    if((err = performPagedQuery(paged_result,
+                                MONGO_DB_COLLECTION_NAME(getDatabaseName().c_str(), MONGODB_COLLECTION_NODES),
+                                q,
+                                NULL,//return only the control unit unique id
+                                NULL,
+                                results_for_page))) {
+        MDBCUDA_ERR << "Error calling performPagedQuery with error" << err;
+    } else {
+        DEBUG_CODE(MDBCUDA_DBG << "The query '"<< q.toString() <<"' has found " << paged_result.size() << " result";)
+        if(paged_result.size()) {
+            for (SearchResultIterator it = paged_result.begin();
+                 it != paged_result.end();
+                 it++) {
+                boost::shared_ptr<CDataWrapper> result_intance(new CDataWrapper());
+                result_intance->addStringValue(chaos::NodeDefinitionKey::NODE_UNIQUE_ID, it->getStringField(chaos::NodeDefinitionKey::NODE_UNIQUE_ID));
+
+                mongo::BSONObj instance_description = it->getObjectField("instance_description");
+                result_intance->addStringValue("control_unit_implementation", instance_description.getStringField("control_unit_implementation"));
+
+                result_page.push_back(result_intance);
+            }
+        }
+    }
+    return err;
+}
+
+int MongoDBControlUnitDataAccess::getInstanceDescription(const std::string& unit_server_uid,
+                                                         const std::string& control_unit_uid,
+                                                         chaos::common::data::CDataWrapper **result) {
+    int err = 0;
+    mongo::BSONObj          q_result;
+    mongo::BSONObjBuilder   bson_find;
+    SearchResult            paged_result;
+
+    bson_find << chaos::NodeDefinitionKey::NODE_UNIQUE_ID << control_unit_uid;
+    bson_find << boost::str(boost::format("instance_description.%1%") % chaos::NodeDefinitionKey::NODE_PARENT) << unit_server_uid;
+    mongo::BSONObj q = bson_find.obj();
+    DEBUG_CODE(MDBCUDA_DBG << "getInstanceDescription findOne ---------------------------------------------";)
+    DEBUG_CODE(MDBCUDA_DBG << "Query: "  << q.jsonString();)
+    DEBUG_CODE(MDBCUDA_DBG << "getInstanceDescription findOne ---------------------------------------------";)
+    if((err = connection->findOne(q_result,
+                                  MONGO_DB_COLLECTION_NAME(getDatabaseName().c_str(), MONGODB_COLLECTION_NODES),
+                                  q))){
+        MDBCUDA_ERR << "Error calling performPagedQuery with error" << err;
+    } else if(q_result.isEmpty()){
+        MDBCUDA_DBG << "No instance description found for control unit:" <<control_unit_uid << " with parent:" << unit_server_uid;
+    } else {
+        mongo::BSONObj instance_description = q_result.getObjectField("instance_description");
+        *result = new CDataWrapper();
+        (*result)->addStringValue(chaos::NodeDefinitionKey::NODE_UNIQUE_ID, q_result.getStringField(chaos::NodeDefinitionKey::NODE_UNIQUE_ID));
+
+
+        (*result)->addStringValue(chaos::NodeDefinitionKey::NODE_PARENT, instance_description.getStringField(chaos::NodeDefinitionKey::NODE_PARENT));
+        if(instance_description.hasField("auto_load"))(*result)->addBoolValue("auto_load", instance_description.getBoolField("auto_load"));
+        if(instance_description.hasField("load_parameter"))(*result)->addStringValue("load_parameter", instance_description.getStringField("load_parameter"));
+        if(instance_description.hasField("control_unit_implementation"))(*result)->addStringValue("control_unit_implementation", instance_description.getStringField("control_unit_implementation"));
+
+        if(instance_description.hasField("driver_description")) {
+            std::vector< mongo::BSONElement > drv_descriptions;
+            instance_description.getObjectField("driver_description").elems(drv_descriptions);
+            for(std::vector< mongo::BSONElement >::iterator it = drv_descriptions.begin();
+                it != drv_descriptions.end();
+                it++) {
+                CDataWrapper driver_desc(it->Obj().objdata());
+                (*result)->appendCDataWrapperToArray(driver_desc);
+            }
+            (*result)->finalizeArrayForKey("driver_description");
+        }
+
+        if(instance_description.hasField("attribute_value_descriptions")) {
+            std::vector< mongo::BSONElement > attr_descriptions;
+            instance_description.getObjectField("attribute_value_descriptions").elems(attr_descriptions);
+            for(std::vector< mongo::BSONElement >::iterator it = attr_descriptions.begin();
+                it != attr_descriptions.end();
+                it++) {
+                CDataWrapper driver_desc(it->Obj().objdata());
+                (*result)->appendCDataWrapperToArray(driver_desc);
+            }
+            (*result)->finalizeArrayForKey("attribute_value_descriptions");
+        }
+    }
+    return err;
+}
+
+int MongoDBControlUnitDataAccess::deleteInstanceDescription(const std::string& unit_server_uid,
+                                                            const std::string& control_unit_uid) {
+    int err = 0;
+    mongo::BSONObj          q_result;
+    mongo::BSONObjBuilder   bson_find;
+
+    bson_find << chaos::NodeDefinitionKey::NODE_UNIQUE_ID << control_unit_uid;
+    bson_find << boost::str(boost::format("instance_description.%1%") % chaos::NodeDefinitionKey::NODE_PARENT) << unit_server_uid;
+    mongo::BSONObj q = bson_find.obj();
+    mongo::BSONObj u = BSON("$unset" << BSON("instance_description" << ""));
+    DEBUG_CODE(MDBCUDA_DBG << "deleteInstanceDescription update ---------------------------------------------";)
+    DEBUG_CODE(MDBCUDA_DBG << "Query: "  << q.jsonString();)
+    DEBUG_CODE(MDBCUDA_DBG << "Update: "  << u.jsonString();)
+    DEBUG_CODE(MDBCUDA_DBG << "deleteInstanceDescription update ---------------------------------------------";)
+        //remove the field of the document
+    if((err = connection->update(MONGO_DB_COLLECTION_NAME(getDatabaseName().c_str(), MONGODB_COLLECTION_NODES),
+                                 q,
+                                 u))) {
+        MDBCUDA_ERR << "Error removing control unit instance from node";
+    }
+    return err;
+}
\ No newline at end of file
diff --git a/ChaosMetadataService/persistence/mongodb/MongoDBControlUnitDataAccess.h b/ChaosMetadataService/persistence/mongodb/MongoDBControlUnitDataAccess.h
index d29888a07cfdc88ebab3de80520c2c340329bdde..bb4e85a2e0b635757e7ce7e255c9ffce1ed751be 100644
--- a/ChaosMetadataService/persistence/mongodb/MongoDBControlUnitDataAccess.h
+++ b/ChaosMetadataService/persistence/mongodb/MongoDBControlUnitDataAccess.h
@@ -1,6 +1,6 @@
 /*
  *	MongoDBControlUnitDataAccess.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
@@ -27,6 +27,9 @@
 #include <chaos/common/utility/ObjectInstancer.h>
 #include <chaos_service_common/persistence/mongodb/MongoDBAccessor.h>
 
+#include <string>
+#include <vector>
+
 namespace chaos {
     namespace metadata_service {
         namespace persistence {
@@ -54,8 +57,24 @@ namespace chaos {
                     int checkDatasetPresence(chaos::common::data::CDataWrapper& dataset_description);
                     
                     int getLastDataset(chaos::common::data::CDataWrapper& dataset_description);
+
+                    int setInstanceDescription(const std::string& cu_unique_id,
+                                               chaos::common::data::CDataWrapper& instance_description);
+
+                    int searchInstanceForUnitServer(std::vector<boost::shared_ptr<chaos::common::data::CDataWrapper> >& result_page,
+                                                    const std::string& unit_server_uid,
+                                                    std::vector<std::string> cu_type_filter,
+                                                    uint32_t last_sequence_id,
+                                                    uint32_t results_for_page);
+
+                    int getInstanceDescription(const std::string& unit_server_uid,
+                                               const std::string& control_unit_uid,
+                                               chaos::common::data::CDataWrapper **result);
+
+                    int deleteInstanceDescription(const std::string& unit_server_uid,
+                                                  const std::string& control_unit_uid);
                 };
-                
+
                 
             }
         }
diff --git a/ChaosMetadataService/persistence/mongodb/MongoDBNodeDataAccess.cpp b/ChaosMetadataService/persistence/mongodb/MongoDBNodeDataAccess.cpp
index 5421394ec8ec2ac9b5e49c75b619bddc947c544c..cb117cc6c60fbb43873f58c55b89d403afef6172 100644
--- a/ChaosMetadataService/persistence/mongodb/MongoDBNodeDataAccess.cpp
+++ b/ChaosMetadataService/persistence/mongodb/MongoDBNodeDataAccess.cpp
@@ -1,6 +1,6 @@
 /*
  *	MongoDBNodeDataAccess.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
@@ -69,12 +69,22 @@ int MongoDBNodeDataAccess::getNodeDescription(const std::string& node_unique_id,
     //inherited method
 int MongoDBNodeDataAccess::insertNewNode(CDataWrapper& node_description) {
     int err = 0;
+    uint64_t sequence_id = 0;
     try {
         if(!node_description.hasKey(chaos::NodeDefinitionKey::NODE_UNIQUE_ID)) return -1;
         if(!node_description.hasKey(chaos::NodeDefinitionKey::NODE_TYPE)) return -2;
-        if(!node_description.hasKey(chaos::NodeDefinitionKey::NODE_RPC_ADDR)) return -3;
+        if(!node_description.hasKey("seq")) {
+            CHAOS_ASSERT(utility_data_access)
+            if(utility_data_access->getNextSequenceValue("nodes", sequence_id)) {
+                MDBNDA_ERR << "Error getting new sequence for node";
+                return err;
+            } else {
+                node_description.addInt64Value("seq", sequence_id);
+            }
+        }
+            //if(!node_description.hasKey(chaos::NodeDefinitionKey::NODE_RPC_ADDR)) return -3;
             //if(!node_description.hasKey(chaos::NodeDefinitionKey::NODE_RPC_DOMAIN)) return -4;
-        if(!node_description.hasKey(chaos::NodeDefinitionKey::NODE_TIMESTAMP)) return -5;
+            //if(!node_description.hasKey(chaos::NodeDefinitionKey::NODE_TIMESTAMP)) return -5;
 
         std::auto_ptr<SerializationBuffer> ser(node_description.getBSONData());
         mongo::BSONObj obj_to_insert(ser->getBufferPtr());
@@ -84,7 +94,7 @@ int MongoDBNodeDataAccess::insertNewNode(CDataWrapper& node_description) {
         DEBUG_CODE(MDBNDA_DBG << "insertNewNode insert ---------------------------------------------";)
         if((err = connection->insert(MONGO_DB_COLLECTION_NAME(getDatabaseName().c_str(), MONGODB_COLLECTION_NODES),
                                      obj_to_insert))) {
-            MDBNDA_ERR << "Error inserting new unit server";
+            MDBNDA_ERR << "Error creating new node";
         }
     } catch (const mongo::DBException &e) {
         MDBNDA_ERR << e.what();
diff --git a/ChaosMetadataService/persistence/mongodb/MongoDBNodeDataAccess.h b/ChaosMetadataService/persistence/mongodb/MongoDBNodeDataAccess.h
index 09e5379afc04adf5355f645b5f054b62734c2f8b..35ca83f4dd65748e5a440b123dc6ea6640ecc953 100644
--- a/ChaosMetadataService/persistence/mongodb/MongoDBNodeDataAccess.h
+++ b/ChaosMetadataService/persistence/mongodb/MongoDBNodeDataAccess.h
@@ -1,6 +1,6 @@
 /*
  *	MongoDBNodeDataAccess.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
@@ -19,8 +19,7 @@
  */
 #ifndef __CHAOSFramework__MongoDBNodeDataAccess__
 #define __CHAOSFramework__MongoDBNodeDataAccess__
-
-#include "MongoDBAccessor.h"
+#include "MongoDBUtilityDataAccess.h"
 #include "../data_access/NodeDataAccess.h"
 #include <chaos/common/utility/ObjectInstancer.h>
 #include <chaos_service_common/persistence/mongodb/MongoDBAccessor.h>
@@ -30,12 +29,14 @@ namespace chaos {
             namespace mongodb {
                 //forward declaration
                 class MongoDBPersistenceDriver;
-                
+
                 //! Data Access for producer manipulation data
                 class MongoDBNodeDataAccess:
                 public data_access::NodeDataAccess,
                 protected service_common::persistence::mongodb::MongoDBAccessor {
                     friend class MongoDBPersistenceDriver;
+
+                    MongoDBUtilityDataAccess *utility_data_access = NULL;
                 protected:
                     MongoDBNodeDataAccess(const boost::shared_ptr<chaos::service_common::persistence::mongodb::MongoDBHAConnectionManager>& _connection);
                     ~MongoDBNodeDataAccess();
@@ -43,17 +44,17 @@ namespace chaos {
                     //inherited method
                     int getNodeDescription(const std::string& node_unique_id,
                                            chaos::common::data::CDataWrapper **node_description);
-                    
+
                     //inherited method
                     int insertNewNode(chaos::common::data::CDataWrapper& node_description);
-                    
+
                     //! update the node updatable feature
                     int updateNode(chaos::common::data::CDataWrapper& node_description);
-                    
+
                     // inherited method
                     int checkNodePresence(const std::string& node_unique_id,
                                           bool& presence);
-                    
+
                     //! inherited method
                     int deleteNode(const std::string& node_unique_id);
 
@@ -65,7 +66,7 @@ namespace chaos {
                                    uint32_t page_length);
                 };
 
-                
+
             }
         }
     }
diff --git a/ChaosMetadataService/persistence/mongodb/MongoDBPersistenceDriver.cpp b/ChaosMetadataService/persistence/mongodb/MongoDBPersistenceDriver.cpp
index 06428b54b5959a05a565bf109e2bd578e8b90bde..3231c132897d860eea929cbd528f2d0ed482814d 100644
--- a/ChaosMetadataService/persistence/mongodb/MongoDBPersistenceDriver.cpp
+++ b/ChaosMetadataService/persistence/mongodb/MongoDBPersistenceDriver.cpp
@@ -1,6 +1,6 @@
 /*
  *	MongoDBPersistenceDriver.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
@@ -59,6 +59,7 @@ void MongoDBPersistenceDriver::init(void *init_data) throw (chaos::CException) {
     registerDataAccess<data_access::UtilityDataAccess>(new MongoDBUtilityDataAccess(connection));
     
     //connec usda with nda
+    getDataAccess<MongoDBNodeDataAccess>()->utility_data_access = getDataAccess<MongoDBUtilityDataAccess>();
     getDataAccess<MongoDBUnitServerDataAccess>()->node_data_access = getDataAccess<MongoDBNodeDataAccess>();
     getDataAccess<MongoDBControlUnitDataAccess>()->node_data_access = getDataAccess<MongoDBNodeDataAccess>();
 }
diff --git a/ChaosMetadataService/persistence/mongodb/MongoDBPersistenceDriver.h b/ChaosMetadataService/persistence/mongodb/MongoDBPersistenceDriver.h
index edf7e60a1179cac06d76648a0d54a99dc2155751..f75d8b22e62cd7e3871951c4763c48be9011fdfd 100644
--- a/ChaosMetadataService/persistence/mongodb/MongoDBPersistenceDriver.h
+++ b/ChaosMetadataService/persistence/mongodb/MongoDBPersistenceDriver.h
@@ -1,6 +1,6 @@
 /*
  *	MongoDBPersistenceDriver.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/persistence/mongodb/MongoDBUnitServerDataAccess.cpp b/ChaosMetadataService/persistence/mongodb/MongoDBUnitServerDataAccess.cpp
index b8422d33e3b1cffa168730bd06ed83e7c50781cf..a796999ebafb2dd8354b14b20143cd6755a1abcf 100644
--- a/ChaosMetadataService/persistence/mongodb/MongoDBUnitServerDataAccess.cpp
+++ b/ChaosMetadataService/persistence/mongodb/MongoDBUnitServerDataAccess.cpp
@@ -1,6 +1,6 @@
 /*
  *	MongoDBUnitServerDataAccess.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/persistence/mongodb/MongoDBUnitServerDataAccess.h b/ChaosMetadataService/persistence/mongodb/MongoDBUnitServerDataAccess.h
index de9b1e374dc9bcaf373e515a06679abad140d370..d2b129ec9dfe270717e3cc155d996212a888e3d7 100644
--- a/ChaosMetadataService/persistence/mongodb/MongoDBUnitServerDataAccess.h
+++ b/ChaosMetadataService/persistence/mongodb/MongoDBUnitServerDataAccess.h
@@ -1,6 +1,6 @@
 /*
  *	MongoDBUnitServerDataAccess.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/persistence/mongodb/MongoDBUtilityDataAccess.cpp b/ChaosMetadataService/persistence/mongodb/MongoDBUtilityDataAccess.cpp
index dce612777403cd27de7fbd9f84b834aca9a74f33..971f4805d229c93c31976513ea0e523a879f0027 100644
--- a/ChaosMetadataService/persistence/mongodb/MongoDBUtilityDataAccess.cpp
+++ b/ChaosMetadataService/persistence/mongodb/MongoDBUtilityDataAccess.cpp
@@ -1,6 +1,6 @@
 /*
  *	MongoDBUtilityDataAccess.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/persistence/mongodb/MongoDBUtilityDataAccess.h b/ChaosMetadataService/persistence/mongodb/MongoDBUtilityDataAccess.h
index ec91b05c243d136094e1c4cab56329c263456dac..9bba59a8967d0c4213131b9d67c49ea94fcfee3f 100644
--- a/ChaosMetadataService/persistence/mongodb/MongoDBUtilityDataAccess.h
+++ b/ChaosMetadataService/persistence/mongodb/MongoDBUtilityDataAccess.h
@@ -1,6 +1,6 @@
 /*
  *	MongoDBUtilityDataAccess.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/persistence/persistence.h b/ChaosMetadataService/persistence/persistence.h
index b29f5101fa98a9063d047d76343841e1e53ebb72..78e1d0bcad21f70fd4650e07f279251ca59d285f 100644
--- a/ChaosMetadataService/persistence/persistence.h
+++ b/ChaosMetadataService/persistence/persistence.h
@@ -1,6 +1,6 @@
 /*
  *	persistence.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataService/persistence/persistence_types.h b/ChaosMetadataService/persistence/persistence_types.h
index b8333ce7c8980c7750e292dcc25793a8e1a9c3c3..32e0a338a886af972f32cfb84c609359412849e2 100644
--- a/ChaosMetadataService/persistence/persistence_types.h
+++ b/ChaosMetadataService/persistence/persistence_types.h
@@ -1,6 +1,6 @@
 /*
  *	persistence_types.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataServiceClient/CMakeLists.txt b/ChaosMetadataServiceClient/CMakeLists.txt
index 8421b7856171c849d25d41056839599d9b6e8964..9db0fde0c29c729d0e86b4a1fc0a0f4d68762753 100644
--- a/ChaosMetadataServiceClient/CMakeLists.txt
+++ b/ChaosMetadataServiceClient/CMakeLists.txt
@@ -24,6 +24,9 @@ INSTALL(FILES ${files} DESTINATION include/ChaosMetadataServiceClient)
 FILE(GLOB files "api_proxy/*.h")
 INSTALL(FILES ${files} DESTINATION include/ChaosMetadataServiceClient/api_proxy)
 
+FILE(GLOB files "api_proxy/control_unit/*.h")
+INSTALL(FILES ${files} DESTINATION include/ChaosMetadataServiceClient/api_proxy/control_unit)
+
 FILE(GLOB files "api_proxy/node/*.h")
 INSTALL(FILES ${files} DESTINATION include/ChaosMetadataServiceClient/api_proxy/node)
 
diff --git a/ChaosMetadataServiceClient/ChaosMetadataServiceClient.cpp b/ChaosMetadataServiceClient/ChaosMetadataServiceClient.cpp
index 9a2cca978694c9a57da26913264d50e74e954b0a..b6b181ca5b350c2a43c9e57732b4dd0f8cc68270 100644
--- a/ChaosMetadataServiceClient/ChaosMetadataServiceClient.cpp
+++ b/ChaosMetadataServiceClient/ChaosMetadataServiceClient.cpp
@@ -1,6 +1,6 @@
 /*
  *	ChaosMetadataServiceClient.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataServiceClient/ChaosMetadataServiceClient.h b/ChaosMetadataServiceClient/ChaosMetadataServiceClient.h
index 7d684506ef76c37df7cf199051693e7234eb42f5..bd9ae288975a40e154a2cd88cfce926453bcf677 100644
--- a/ChaosMetadataServiceClient/ChaosMetadataServiceClient.h
+++ b/ChaosMetadataServiceClient/ChaosMetadataServiceClient.h
@@ -1,6 +1,6 @@
 /*
  *	MetadataServiceClient.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataServiceClient/api_proxy/ApiProxy.cpp b/ChaosMetadataServiceClient/api_proxy/ApiProxy.cpp
index be4aaf504414a922d2494c1d90633dcc93bdef09..3022272321c52df7b36dbf99767fbf139ff3e3b1 100644
--- a/ChaosMetadataServiceClient/api_proxy/ApiProxy.cpp
+++ b/ChaosMetadataServiceClient/api_proxy/ApiProxy.cpp
@@ -1,6 +1,6 @@
 /*
  *	ApiProxy.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
@@ -20,10 +20,12 @@
 #include <ChaosMetadataServiceClient/api_proxy/ApiProxy.h>
 using namespace chaos::metadata_service_client::api_proxy;
     //! default constructor
-ApiProxy::ApiProxy(const std::string& api_name,
+ApiProxy::ApiProxy(const std::string& _group_name,
+                   const std::string& _api_name,
                    chaos::common::message::MultiAddressMessageChannel *_mn_message,
                    int32_t _timeout_in_milliseconds):
-NamedService(api_name),
+group_name(_group_name),
+api_name(_api_name),
 access_counter(0),
 timeout_in_milliseconds(_timeout_in_milliseconds),
 mn_message(_mn_message){
@@ -36,11 +38,9 @@ ApiProxy::~ApiProxy() {
 
     //! execute an api call
 
-ApiProxyResult ApiProxy::callApi(const std::string& api_group,
-                                 const std::string& api_name,
-                                 chaos::common::data::CDataWrapper *api_message) {
+ApiProxyResult ApiProxy::callApi(chaos::common::data::CDataWrapper *api_message) {
     CHAOS_ASSERT(mn_message)
-    return  mn_message->sendRequestWithFuture(api_group,
+    return  mn_message->sendRequestWithFuture(group_name,
                                               api_name,
                                               api_message,
                                               timeout_in_milliseconds);
diff --git a/ChaosMetadataServiceClient/api_proxy/ApiProxy.h b/ChaosMetadataServiceClient/api_proxy/ApiProxy.h
index afbe0e7c72093ceb0dcd4f5b9c15b58d07524f31..9a1f182c132bde29fb7f61f0f3d8b3ae179ac7cd 100644
--- a/ChaosMetadataServiceClient/api_proxy/ApiProxy.h
+++ b/ChaosMetadataServiceClient/api_proxy/ApiProxy.h
@@ -1,6 +1,6 @@
 /*
  *	ApiProxy.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
@@ -21,7 +21,7 @@
 #ifndef __CHAOSFramework__ApiProxy__
 #define __CHAOSFramework__ApiProxy__
 
-#include <chaos/common/utility/NamedService.h>
+    //#include <chaos/common/utility/NamedService.h>
 #include <chaos/common/message/MultiAddressMessageChannel.h>
 
 #include <boost/atomic.hpp>
@@ -36,41 +36,45 @@ namespace chaos {
 explicit x(chaos::common::message::MultiAddressMessageChannel *_mn_message, int32_t timeout_in_milliseconds);\
 ~x();
 
-#define API_PROXY_CD_DEFINITION(x, alias)\
-x::x(chaos::common::message::MultiAddressMessageChannel *_mn_message, int32_t timeout_in_milliseconds):ApiProxy(alias, _mn_message, timeout_in_milliseconds){}\
+#define API_PROXY_CD_DEFINITION(x, group, name)\
+x::x(chaos::common::message::MultiAddressMessageChannel *_mn_message, int32_t timeout_in_milliseconds):ApiProxy(group, name, _mn_message, timeout_in_milliseconds){}\
 x::~x(){}
 
+#define API_PROXY_CD_DEFINITION_WITH_INIT(x, group, name, init)\
+x::x(chaos::common::message::MultiAddressMessageChannel *_mn_message, int32_t timeout_in_milliseconds):ApiProxy(group, name, _mn_message, timeout_in_milliseconds){init}\
+x::~x(){}
             //! define the result of an api like shared pointer of @chaos::common::message::MessageRequestFuture
             typedef auto_ptr<chaos::common::message::MultiAddressMessageRequestFuture> ApiProxyResult;
             
             class ApiProxyManager;
                 //! base class for all proxy api
-            class ApiProxy:
-            public chaos::common::utility::NamedService {
+            class ApiProxy {
                 friend class ApiProxyManager;
                     //!keep track on how many access are done to the proxy
                 boost::atomic<int> access_counter;
-
+                    //!is the timeout for the future
                 int32_t timeout_in_milliseconds;
-
                     //!channel for mds communication
                 chaos::common::message::MultiAddressMessageChannel *mn_message;
             protected:
+                    //! point to api group name
+                std::string     group_name;
+                    //! point to the api name
+                std::string     api_name;
+
                     //! default constructor
-                explicit ApiProxy(const std::string& api_name,
+                explicit ApiProxy(const std::string& _group_name,
+                                  const std::string& _api_name,
                                   chaos::common::message::MultiAddressMessageChannel *_mn_message,
                                   int32_t _timeout_in_milliseconds = 1000);
                     //! default destructor
                 ~ApiProxy();
-            protected:
                     //! execute an api call
                 /*!
                  preform an call of an api and return the opportune future
                  that permit to inspect the result or error
                  */
-                ApiProxyResult callApi(const std::string& api_group,
-                                       const std::string& api_name,
-                                       chaos::common::data::CDataWrapper *api_message);
+                ApiProxyResult callApi(chaos::common::data::CDataWrapper *api_message);
             };
         }
     }
diff --git a/ChaosMetadataServiceClient/api_proxy/ApiProxyManager.cpp b/ChaosMetadataServiceClient/api_proxy/ApiProxyManager.cpp
index c972a63be07bb05417690a17d256e65716d34f24..7dad382538e81e88e87dcff26819c95ba896ead4 100644
--- a/ChaosMetadataServiceClient/api_proxy/ApiProxyManager.cpp
+++ b/ChaosMetadataServiceClient/api_proxy/ApiProxyManager.cpp
@@ -1,6 +1,6 @@
 /*
  *	ApiProxyManager.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataServiceClient/api_proxy/ApiProxyManager.h b/ChaosMetadataServiceClient/api_proxy/ApiProxyManager.h
index bcde31f588ea76c5ab531aeb7437bc54dcd34f90..70a907c8f90468fcca089ab4cbc507b4570c5395 100644
--- a/ChaosMetadataServiceClient/api_proxy/ApiProxyManager.h
+++ b/ChaosMetadataServiceClient/api_proxy/ApiProxyManager.h
@@ -1,6 +1,6 @@
 /*
  *	ApiProxyManager.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataServiceClient/api_proxy/api.h b/ChaosMetadataServiceClient/api_proxy/api.h
index 02b9e5b23f2620ff1cb3ea339482271c1f6f2b7d..15a0594e89d88db9fd0e147da27a3b0fb5f84e93 100644
--- a/ChaosMetadataServiceClient/api_proxy/api.h
+++ b/ChaosMetadataServiceClient/api_proxy/api.h
@@ -1,6 +1,6 @@
 /*
  *	api.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
@@ -25,6 +25,11 @@
 #include <ChaosMetadataServiceClient/api_proxy/ApiProxyManager.h>
 
 //---include all api header
+#include <ChaosMetadataServiceClient/api_proxy/control_unit/GetInstance.h>
+#include <ChaosMetadataServiceClient/api_proxy/control_unit/DeleteInstance.h>
+#include <ChaosMetadataServiceClient/api_proxy/control_unit/SearchInstancesByUS.h>
+#include <ChaosMetadataServiceClient/api_proxy/control_unit/SetInstanceDescription.h>
+
 #include <ChaosMetadataServiceClient/api_proxy/node/GetNodeDescription.h>
 #include <ChaosMetadataServiceClient/api_proxy/node/NodeSearch.h>
 
diff --git a/ChaosMetadataServiceClient/api_proxy/control_unit/DeleteInstance.cpp b/ChaosMetadataServiceClient/api_proxy/control_unit/DeleteInstance.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..f5615725885f721284542e2c2ca2e60098aa44b5
--- /dev/null
+++ b/ChaosMetadataServiceClient/api_proxy/control_unit/DeleteInstance.cpp
@@ -0,0 +1,40 @@
+/*
+ *	GetInstance.cpp
+ *	!CHAOS
+ *	Created by Bisegni Claudio.
+ *
+ *    	Copyright 2015 INFN, National Institute of Nuclear Physics
+ *
+ *    	Licensed under the Apache License, Version 2.0 (the "License");
+ *    	you may not use this file except in compliance with the License.
+ *    	You may obtain a copy of the License at
+ *
+ *    	http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    	Unless required by applicable law or agreed to in writing, software
+ *    	distributed under the License is distributed on an "AS IS" BASIS,
+ *    	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    	See the License for the specific language governing permissions and
+ *    	limitations under the License.
+ */
+
+#include <ChaosMetadataServiceClient/api_proxy/control_unit/DeleteInstance.h>
+
+
+using namespace chaos::metadata_service_client::api_proxy;
+using namespace chaos::metadata_service_client::api_proxy::control_unit;
+
+API_PROXY_CD_DEFINITION(DeleteInstance,
+                        "control_unit",
+                        "deleteInstance")
+
+/*!
+
+ */
+ApiProxyResult DeleteInstance::execute(const std::string& unit_server_uid,
+                                    const std::string& control_unit_uid) {
+    chaos::common::data::CDataWrapper *message = new chaos::common::data::CDataWrapper();
+    message->addStringValue(chaos::NodeDefinitionKey::NODE_UNIQUE_ID, control_unit_uid);
+    message->addStringValue(chaos::NodeDefinitionKey::NODE_PARENT, unit_server_uid);
+    return callApi(message);
+}
\ No newline at end of file
diff --git a/ChaosMetadataServiceClient/api_proxy/control_unit/DeleteInstance.h b/ChaosMetadataServiceClient/api_proxy/control_unit/DeleteInstance.h
new file mode 100644
index 0000000000000000000000000000000000000000..94daf2a17118f4f16bf1fe7db5dd7511bddbddcc
--- /dev/null
+++ b/ChaosMetadataServiceClient/api_proxy/control_unit/DeleteInstance.h
@@ -0,0 +1,48 @@
+/*
+ *	DeleteInstance.h
+ *	!CHAOS
+ *	Created by Bisegni Claudio.
+ *
+ *    	Copyright 2015 INFN, National Institute of Nuclear Physics
+ *
+ *    	Licensed under the Apache License, Version 2.0 (the "License");
+ *    	you may not use this file except in compliance with the License.
+ *    	You may obtain a copy of the License at
+ *
+ *    	http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    	Unless required by applicable law or agreed to in writing, software
+ *    	distributed under the License is distributed on an "AS IS" BASIS,
+ *    	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    	See the License for the specific language governing permissions and
+ *    	limitations under the License.
+ */
+
+#ifndef __CHAOSFramework__DeleteInstance__
+#define __CHAOSFramework__DeleteInstance__
+
+#include <ChaosMetadataServiceClient/api_proxy/ApiProxy.h>
+
+namespace chaos {
+    namespace metadata_service_client {
+        namespace api_proxy {
+            namespace control_unit {
+
+                class DeleteInstance:
+                public chaos::metadata_service_client::api_proxy::ApiProxy {
+                    API_PROXY_CLASS(DeleteInstance)
+                protected:
+                        //! default constructor
+                    API_PROXY_CD_DECLARATION(DeleteInstance)
+
+                public:
+
+                    ApiProxyResult execute(const std::string& unit_server_uid,
+                                           const std::string& control_unit_uid);
+                };
+            }
+        }
+    }
+}
+
+#endif /* defined(__CHAOSFramework__DeleteInstance__) */
diff --git a/ChaosMetadataServiceClient/api_proxy/control_unit/GetInstance.cpp b/ChaosMetadataServiceClient/api_proxy/control_unit/GetInstance.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..d6d67607f89d4d91d56c74c88396d161f9200272
--- /dev/null
+++ b/ChaosMetadataServiceClient/api_proxy/control_unit/GetInstance.cpp
@@ -0,0 +1,39 @@
+/*
+ *	GetInstance.cpp
+ *	!CHAOS
+ *	Created by Bisegni Claudio.
+ *
+ *    	Copyright 2015 INFN, National Institute of Nuclear Physics
+ *
+ *    	Licensed under the Apache License, Version 2.0 (the "License");
+ *    	you may not use this file except in compliance with the License.
+ *    	You may obtain a copy of the License at
+ *
+ *    	http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    	Unless required by applicable law or agreed to in writing, software
+ *    	distributed under the License is distributed on an "AS IS" BASIS,
+ *    	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    	See the License for the specific language governing permissions and
+ *    	limitations under the License.
+ */
+
+#include <ChaosMetadataServiceClient/api_proxy/control_unit/GetInstance.h>
+
+using namespace chaos::metadata_service_client::api_proxy;
+using namespace chaos::metadata_service_client::api_proxy::control_unit;
+
+API_PROXY_CD_DEFINITION(GetInstance,
+                        "control_unit",
+                        "getInstance")
+
+/*!
+
+ */
+ApiProxyResult GetInstance::execute(const std::string& unit_server_uid,
+                                    const std::string& control_unit_uid) {
+    chaos::common::data::CDataWrapper *message = new chaos::common::data::CDataWrapper();
+    message->addStringValue(chaos::NodeDefinitionKey::NODE_UNIQUE_ID, control_unit_uid);
+    message->addStringValue(chaos::NodeDefinitionKey::NODE_PARENT, unit_server_uid);
+    return callApi(message);
+}
\ No newline at end of file
diff --git a/ChaosMetadataServiceClient/api_proxy/control_unit/GetInstance.h b/ChaosMetadataServiceClient/api_proxy/control_unit/GetInstance.h
new file mode 100644
index 0000000000000000000000000000000000000000..54e0a00d5ad58b3f53afdb99276eed021ca02a71
--- /dev/null
+++ b/ChaosMetadataServiceClient/api_proxy/control_unit/GetInstance.h
@@ -0,0 +1,47 @@
+/*
+ *	GetInstance.h
+ *	!CHAOS
+ *	Created by Bisegni Claudio.
+ *
+ *    	Copyright 2015 INFN, National Institute of Nuclear Physics
+ *
+ *    	Licensed under the Apache License, Version 2.0 (the "License");
+ *    	you may not use this file except in compliance with the License.
+ *    	You may obtain a copy of the License at
+ *
+ *    	http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    	Unless required by applicable law or agreed to in writing, software
+ *    	distributed under the License is distributed on an "AS IS" BASIS,
+ *    	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    	See the License for the specific language governing permissions and
+ *    	limitations under the License.
+ */
+
+#ifndef __CHAOSFramework__GetInstance__
+#define __CHAOSFramework__GetInstance__
+
+#include <ChaosMetadataServiceClient/api_proxy/ApiProxy.h>
+
+namespace chaos {
+    namespace metadata_service_client {
+        namespace api_proxy {
+            namespace control_unit {
+                class GetInstance:
+                public chaos::metadata_service_client::api_proxy::ApiProxy {
+                    API_PROXY_CLASS(GetInstance)
+                protected:
+                        //! default constructor
+                    API_PROXY_CD_DECLARATION(GetInstance)
+
+                public:
+
+                    ApiProxyResult execute(const std::string& unit_server_uid,
+                                           const std::string& control_unit_uid);
+                };
+            }
+        }
+    }
+}
+
+#endif /* defined(__CHAOSFramework__GetInstance__) */
diff --git a/ChaosMetadataServiceClient/api_proxy/control_unit/SearchInstancesByUS.cpp b/ChaosMetadataServiceClient/api_proxy/control_unit/SearchInstancesByUS.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..8ef89cc3f1bb9b9769764100f4fa3ce2af604413
--- /dev/null
+++ b/ChaosMetadataServiceClient/api_proxy/control_unit/SearchInstancesByUS.cpp
@@ -0,0 +1,47 @@
+/*
+ *	SearchInstancesByUS.cpp
+ *	!CHAOS
+ *	Created by Bisegni Claudio.
+ *
+ *    	Copyright 2015 INFN, National Institute of Nuclear Physics
+ *
+ *    	Licensed under the Apache License, Version 2.0 (the "License");
+ *    	you may not use this file except in compliance with the License.
+ *    	You may obtain a copy of the License at
+ *
+ *    	http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    	Unless required by applicable law or agreed to in writing, software
+ *    	distributed under the License is distributed on an "AS IS" BASIS,
+ *    	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    	See the License for the specific language governing permissions and
+ *    	limitations under the License.
+ */
+#include <ChaosMetadataServiceClient/api_proxy/control_unit/SearchInstancesByUS.h>
+
+using namespace chaos::metadata_service_client::api_proxy;
+using namespace chaos::metadata_service_client::api_proxy::control_unit;
+
+API_PROXY_CD_DEFINITION(SearchInstancesByUS,
+                        "control_unit",
+                        "searchInstancesByUS")
+
+/*!
+
+ */
+ApiProxyResult SearchInstancesByUS::execute(uint32_t last_node_sequence_id,
+                                            uint32_t result_page_length) {
+    chaos::common::data::CDataWrapper *message = new chaos::common::data::CDataWrapper();
+    message->addStringValue(chaos::NodeDefinitionKey::NODE_PARENT, unit_server_uid);
+    if(control_unit_implementation.size()) {
+        for(std::vector<std::string>::iterator it = control_unit_implementation.begin();
+            it != control_unit_implementation.end();
+            it++) {
+            message->appendStringToArray(*it);
+        }
+        message->finalizeArrayForKey("control_unit_implementation");
+    }
+    message->addInt32Value("last_node_sequence_id", last_node_sequence_id);
+    message->addInt32Value("result_page_length", result_page_length);
+    return callApi(message);
+}
\ No newline at end of file
diff --git a/ChaosMetadataServiceClient/api_proxy/control_unit/SearchInstancesByUS.h b/ChaosMetadataServiceClient/api_proxy/control_unit/SearchInstancesByUS.h
new file mode 100644
index 0000000000000000000000000000000000000000..673c6ae7b67fec0698d4278171f3877c763ec8f2
--- /dev/null
+++ b/ChaosMetadataServiceClient/api_proxy/control_unit/SearchInstancesByUS.h
@@ -0,0 +1,51 @@
+/*
+ *	SearchInstancesByUS.h
+ *	!CHAOS
+ *	Created by Bisegni Claudio.
+ *
+ *    	Copyright 2015 INFN, National Institute of Nuclear Physics
+ *
+ *    	Licensed under the Apache License, Version 2.0 (the "License");
+ *    	you may not use this file except in compliance with the License.
+ *    	You may obtain a copy of the License at
+ *
+ *    	http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    	Unless required by applicable law or agreed to in writing, software
+ *    	distributed under the License is distributed on an "AS IS" BASIS,
+ *    	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    	See the License for the specific language governing permissions and
+ *    	limitations under the License.
+ */
+
+#ifndef __CHAOSFramework__SearchInstancesByUS__
+#define __CHAOSFramework__SearchInstancesByUS__
+
+#include <ChaosMetadataServiceClient/api_proxy/ApiProxy.h>
+
+namespace chaos {
+    namespace metadata_service_client {
+        namespace api_proxy {
+            namespace control_unit {
+                class SearchInstancesByUS:
+                public chaos::metadata_service_client::api_proxy::ApiProxy {
+                    API_PROXY_CLASS(SearchInstancesByUS)
+                protected:
+                        //! default constructor
+                    API_PROXY_CD_DECLARATION(SearchInstancesByUS)
+
+                public:
+                        //the unit server that host the instances
+                    std::string unit_server_uid;
+                        //the implementation that whe want to be returned
+                    std::vector<std::string> control_unit_implementation;
+
+                    ApiProxyResult execute(uint32_t last_node_sequence_id = 0,
+                                           uint32_t result_page_length = 100);
+                };
+            }
+        }
+    }
+}
+
+#endif /* defined(__CHAOSFramework__SearchInstancesByUS__) */
diff --git a/ChaosMetadataServiceClient/api_proxy/control_unit/SetInstanceDescription.cpp b/ChaosMetadataServiceClient/api_proxy/control_unit/SetInstanceDescription.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..725c3baec4cdfc27b51d02cc681c64de453a51ca
--- /dev/null
+++ b/ChaosMetadataServiceClient/api_proxy/control_unit/SetInstanceDescription.cpp
@@ -0,0 +1,118 @@
+/*
+ *	ControlUnitSetInstanceDescription.cpp
+ *	!CHAOS
+ *	Created by Bisegni Claudio.
+ *
+ *    	Copyright 2015 INFN, National Institute of Nuclear Physics
+ *
+ *    	Licensed under the Apache License, Version 2.0 (the "License");
+ *    	you may not use this file except in compliance with the License.
+ *    	You may obtain a copy of the License at
+ *
+ *    	http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    	Unless required by applicable law or agreed to in writing, software
+ *    	distributed under the License is distributed on an "AS IS" BASIS,
+ *    	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    	See the License for the specific language governing permissions and
+ *    	limitations under the License.
+ */
+
+#include <ChaosMetadataServiceClient/api_proxy/control_unit/SetInstanceDescription.h>
+
+using namespace chaos::common::data;
+using namespace chaos::metadata_service_client::api_proxy;
+using namespace chaos::metadata_service_client::api_proxy::control_unit;
+
+API_PROXY_CD_DEFINITION_WITH_INIT(SetInstanceDescription,
+                                  "control_unit",
+                                  "setInstanceDescription",
+                                  control_unit_uid = "";
+                                  unit_server_uid = "";
+                                  control_unit_implementation = "";
+                                  auto_load = false;
+                                  load_parameter = "";
+                                  )
+
+    //!add a new driver description
+void SetInstanceDescription::addDriverDesscription(const std::string& driver_name,
+                                                   const std::string& driver_version,
+                                                   const std::string& driver_init_parameter) {
+    auto_ptr<CDataWrapper> dd(new CDataWrapper());
+    dd->addStringValue("name", driver_name);
+    dd->addStringValue("version", driver_version);
+    dd->addStringValue("init_parameter", driver_init_parameter);
+    driver_descirptions.push_back(dd.release());
+}
+
+    //! clear all previously added driver descriptions
+void SetInstanceDescription::clearAllDriverDescriptions() {
+    driver_descirptions.clear();
+}
+
+    //! add an attribute range value description for the default value and range
+void SetInstanceDescription::addAttributeConfig(const std::string& attribute_name,
+                                                const std::string& attribute_default_value,
+                                                const std::string& attribute_max_range,
+                                                const std::string& attribute_min_range) {
+    auto_ptr<CDataWrapper> attr(new CDataWrapper());
+    attr->addStringValue(chaos::ControlUnitNodeDefinitionKey::CONTROL_UNIT_DATASET_ATTRIBUTE_NAME, attribute_name);
+    attr->addStringValue(chaos::ControlUnitNodeDefinitionKey::CONTROL_UNIT_DATASET_DEFAULT_VALUE, attribute_default_value);
+    if(attribute_max_range.size()>0)attr->addStringValue(chaos::ControlUnitNodeDefinitionKey::CONTROL_UNIT_DATASET_MAX_RANGE, attribute_max_range);
+    if(attribute_min_range.size()>0)attr->addStringValue(chaos::ControlUnitNodeDefinitionKey::CONTROL_UNIT_DATASET_MIN_RANGE, attribute_min_range);
+    attribute_value_descriptions.push_back(attr.release());
+
+}
+    //! remove all previously added attribute range value description
+void SetInstanceDescription::clearAllAttributeConfig() {
+    attribute_value_descriptions.clear();
+}
+
+
+/*!
+
+ */
+ApiProxyResult SetInstanceDescription::execute() {
+    chaos::common::data::CDataWrapper instance_description;
+    chaos::common::data::CDataWrapper *message = new chaos::common::data::CDataWrapper();
+        //add the control unit unique id
+    message->addStringValue(chaos::NodeDefinitionKey::NODE_UNIQUE_ID, control_unit_uid);
+        // set the type for control unit
+    message->addStringValue(chaos::NodeDefinitionKey::NODE_TYPE, chaos::NodeType::NODE_TYPE_CONTROL_UNIT);
+
+
+
+        // add the unit server as parent
+    instance_description.addStringValue(chaos::NodeDefinitionKey::NODE_PARENT, unit_server_uid);
+
+        //add the control unit implementation
+    instance_description.addStringValue("control_unit_implementation", control_unit_implementation);
+
+        //add the control unit implementation
+    instance_description.addBoolValue("auto_load", auto_load);
+        // set the load parameter
+    instance_description.addStringValue("load_parameter", load_parameter);
+
+        //add driver description
+    if(driver_descirptions.size()>0) {
+    for(CDWListIterator it = driver_descirptions.begin();
+        it != driver_descirptions.end();
+        it++) {
+        instance_description.appendCDataWrapperToArray(*it);
+    }
+    instance_description.finalizeArrayForKey("driver_description");
+    }
+        //add attribute description
+    if(attribute_value_descriptions.size()>0) {
+        for(CDWListIterator it = attribute_value_descriptions.begin();
+            it != attribute_value_descriptions.end();
+            it++) {
+            instance_description.appendCDataWrapperToArray(*it);
+        }
+        instance_description.finalizeArrayForKey("attribute_value_descriptions");
+    }
+
+        //add instance description to the message
+    message->addCSDataValue("instance_description", instance_description);
+    return callApi(message);
+}
\ No newline at end of file
diff --git a/ChaosMetadataServiceClient/api_proxy/control_unit/SetInstanceDescription.h b/ChaosMetadataServiceClient/api_proxy/control_unit/SetInstanceDescription.h
new file mode 100644
index 0000000000000000000000000000000000000000..9106a6b7aa981ad7631c7a850b1c3bde45dc25f6
--- /dev/null
+++ b/ChaosMetadataServiceClient/api_proxy/control_unit/SetInstanceDescription.h
@@ -0,0 +1,86 @@
+/*
+ *	SetInstanceDescription.h
+ *	!CHAOS
+ *	Created by Bisegni Claudio.
+ *
+ *    	Copyright 2015 INFN, National Institute of Nuclear Physics
+ *
+ *    	Licensed under the Apache License, Version 2.0 (the "License");
+ *    	you may not use this file except in compliance with the License.
+ *    	You may obtain a copy of the License at
+ *
+ *    	http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    	Unless required by applicable law or agreed to in writing, software
+ *    	distributed under the License is distributed on an "AS IS" BASIS,
+ *    	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    	See the License for the specific language governing permissions and
+ *    	limitations under the License.
+ */
+#ifndef __CHAOSFramework__SetInstanceDescription__
+#define __CHAOSFramework__SetInstanceDescription__
+
+#include <ChaosMetadataServiceClient/api_proxy/ApiProxy.h>
+
+#include <boost/ptr_container/ptr_vector.hpp>
+
+namespace chaos {
+    namespace metadata_service_client {
+        namespace api_proxy {
+            namespace control_unit {
+
+                typedef boost::ptr_vector<common::data::CDataWrapper>           CDWList;
+                typedef boost::ptr_vector<common::data::CDataWrapper>::iterator CDWListIterator;
+
+                class SetInstanceDescription:
+                public chaos::metadata_service_client::api_proxy::ApiProxy {
+                    API_PROXY_CLASS(SetInstanceDescription)
+                        //!list for all ddriver description added to the api
+                    CDWList driver_descirptions;
+                        //!list all the attribute value description added to the api
+                    CDWList attribute_value_descriptions;
+                protected:
+                    API_PROXY_CD_DECLARATION(SetInstanceDescription)
+                public:
+                        //! the unique id of the control unit instance
+                    std::string control_unit_uid;
+                        //! the unit server that host the instance
+                    std::string unit_server_uid;
+                        //!the control unit implementaiton of the instance
+                    std::string control_unit_implementation;
+                        //!set the instance autoload flag
+                    /*!
+                     specify if the control unit, hosted by an unit server, need to be loaded after his parent has been successfully registered.
+                     */
+                    bool auto_load;
+
+                        //! the string is passed to the control unit for the load phase
+                    std::string load_parameter;
+
+                        //!add a new driver description
+                    void addDriverDesscription(const std::string& driver_name,
+                                               const std::string& driver_version,
+                                               const std::string& driver_init_parameter);
+
+                        //! clear all previously added driver descriptions
+                    void clearAllDriverDescriptions();
+
+                        //! add an attribute range value description for the default value and range
+                    void addAttributeConfig(const std::string& attribute_name,
+                                            const std::string& attribute_default_value,
+                                            const std::string& attribute_max_range = std::string(),
+                                            const std::string& attribute_min_range = std::string());
+                        //! remove all previously added attribute range value description
+                    void clearAllAttributeConfig();
+                    /*!
+                     Set the isntance
+                     */
+                    ApiProxyResult execute();
+                };
+                
+            }
+        }
+    }
+}
+
+#endif /* defined(__CHAOSFramework__SetInstanceDescription__) */
diff --git a/ChaosMetadataServiceClient/api_proxy/node/GetNodeDescription.cpp b/ChaosMetadataServiceClient/api_proxy/node/GetNodeDescription.cpp
index 1bd23737b34a024970a9fab0950327a43ed73b7a..fa4a6296f8e3d3a148344ed4b0545628a5f301ff 100644
--- a/ChaosMetadataServiceClient/api_proxy/node/GetNodeDescription.cpp
+++ b/ChaosMetadataServiceClient/api_proxy/node/GetNodeDescription.cpp
@@ -1,6 +1,6 @@
 /*
  *	GetNodeDescription.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
@@ -22,7 +22,9 @@
 using namespace chaos::metadata_service_client::api_proxy;
 using namespace chaos::metadata_service_client::api_proxy::node;
 
-API_PROXY_CD_DEFINITION(GetNodeDescription, "getNodeDescription")
+API_PROXY_CD_DEFINITION(GetNodeDescription,
+                        "system",
+                        "getNodeDescription")
 
 /*!
 
@@ -30,5 +32,5 @@ API_PROXY_CD_DEFINITION(GetNodeDescription, "getNodeDescription")
 ApiProxyResult GetNodeDescription::execute(const std::string& unique_node_id) {
     chaos::common::data::CDataWrapper *message = new chaos::common::data::CDataWrapper();
     message->addStringValue(chaos::NodeDefinitionKey::NODE_UNIQUE_ID, unique_node_id);
-    return callApi("system", getName(), message);
+    return callApi(message);
 }
\ No newline at end of file
diff --git a/ChaosMetadataServiceClient/api_proxy/node/NodeSearch.cpp b/ChaosMetadataServiceClient/api_proxy/node/NodeSearch.cpp
index 1f4f2ad92aae90bd610ff0285bd3e65edd145fc5..81abd38b624301835b2da91cdbb8984cb293db29 100644
--- a/ChaosMetadataServiceClient/api_proxy/node/NodeSearch.cpp
+++ b/ChaosMetadataServiceClient/api_proxy/node/NodeSearch.cpp
@@ -1,6 +1,6 @@
 /*
  *	NodeSearch.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
@@ -22,7 +22,7 @@
 using namespace chaos::metadata_service_client::api_proxy;
 using namespace chaos::metadata_service_client::api_proxy::node;
 
-API_PROXY_CD_DEFINITION(NodeSearch, "nodeSearch")
+API_PROXY_CD_DEFINITION(NodeSearch, "system", "nodeSearch")
 
 /*!
 
@@ -36,5 +36,5 @@ ApiProxyResult NodeSearch::execute(const std::string& unique_id_filter,
     message->addInt32Value("node_type_filter", node_type_filter);
     message->addInt32Value("last_node_sequence_id", last_node_sequence_id);
     message->addInt32Value("result_page_length", page_length);
-    return callApi("system", getName(), message);
+    return callApi(message);
 }
\ No newline at end of file
diff --git a/ChaosMetadataServiceClient/api_proxy/node/NodeSearch.h b/ChaosMetadataServiceClient/api_proxy/node/NodeSearch.h
index f3cd839d602152e97d259a3085389d557cacdb62..596fe60b8cf5024a7f7aece73cc3707a3e5b6759 100644
--- a/ChaosMetadataServiceClient/api_proxy/node/NodeSearch.h
+++ b/ChaosMetadataServiceClient/api_proxy/node/NodeSearch.h
@@ -1,6 +1,6 @@
 /*
  *	NodeSearch.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataServiceClient/metadata_service_client_constants.h b/ChaosMetadataServiceClient/metadata_service_client_constants.h
index 6dbcccdc9e43608763ba5e8e30f7d807d792c079..8b65f11be8191160c1a2341b939db88d91e40e23 100644
--- a/ChaosMetadataServiceClient/metadata_service_client_constants.h
+++ b/ChaosMetadataServiceClient/metadata_service_client_constants.h
@@ -1,6 +1,6 @@
 /*
  *	metadata_service_client_constants.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataServiceClient/metadata_service_client_types.h b/ChaosMetadataServiceClient/metadata_service_client_types.h
index a35ff7f6c61f5771b8cf4e61d1cf4623eea7caa4..84c607f141b201d93b14ad95410329ddd9e587ef 100644
--- a/ChaosMetadataServiceClient/metadata_service_client_types.h
+++ b/ChaosMetadataServiceClient/metadata_service_client_types.h
@@ -1,6 +1,6 @@
 /*
  *	metadata_service_types.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosMetadataServiceClientTest/main.cpp b/ChaosMetadataServiceClientTest/main.cpp
index bff014f9a23f0eb18c85e13a399070b64c263186..e62e3eb6d107dee28db3a546b94ce94c1e76c31a 100644
--- a/ChaosMetadataServiceClientTest/main.cpp
+++ b/ChaosMetadataServiceClientTest/main.cpp
@@ -11,12 +11,19 @@
 #include <chaos/common/message/MultiAddressMessageChannel.h>
 #include <ChaosMetadataServiceClient/ChaosMetadataServiceClient.h>
 
+#include <boost/atomic.hpp>
+#include <boost/thread.hpp>
 #include <boost/lexical_cast.hpp>
+
 using namespace chaos::metadata_service_client::api_proxy;
 using namespace chaos::metadata_service_client::api_proxy::node;
 
 using namespace chaos::metadata_service_client;
 
+boost::atomic<uint64_t> global_counter;
+boost::atomic<uint64_t> error_count;
+boost::atomic<uint64_t> no_result_count;
+;
 class EchoTestProxy:
 public chaos::metadata_service_client::api_proxy::ApiProxy {
     API_PROXY_CLASS(EchoTestProxy)
@@ -40,41 +47,56 @@ public:
     };
 };
 
+void asyncTest(EchoTestProxy *echo_proxy_test) {
 
+    uint64_t num_of_cicle = 0;
+    for(int idx = 0; idx < 10000; idx++) {
+        if(((num_of_cicle++) % 100) == 0) {
+            std::cout << "." << std::flush;
+        }
+        std::string value = "value_echo_" + boost::lexical_cast<std::string>(global_counter++);
+        ApiProxyResult r = echo_proxy_test->execute("key_echo", value);
+        int i = 0;
+        while (!r->wait()) {
+            std::cout << "Waint for result pass:" << i++<< "\n" << std::flush;
+            if(i>2) break;
+        }
+        
+        if(r->getResult() != NULL) {
+            //std::cout << r->getResult()->getJSONString() << "\n" << std::flush;
+            assert(value.compare(r->getResult()->getStringValue("key_echo")) == 0);
+        } else if(r->getError()){
+            error_count++;
+            //std::cerr << "Error code:"<<r->getError() << "\n" << std::flush;
+            //std::cerr << "Error Message:"<<r->getErrorMessage() <<  "\n" << std::flush;
+            //std::cerr << "Error Domain:"<<r->getErrorDomain() <<  "\n" << std::flush;
+        } else {
+            no_result_count++;
+            //std::cerr << "No result found";
+        }
+        //sleep for 100ms
+        //usleep(1000);
+    }
+}
 
 int main(int argc, char * argv[]) {
-    
+    boost::thread_group tg;
     try{
+        global_counter = 0;
+        error_count = 0;
+        no_result_count=0;
         ChaosMetadataServiceClient::getInstance()->init(argc, argv);
         ChaosMetadataServiceClient::getInstance()->start();
 
         EchoTestProxy *echo_proxy_test = ChaosMetadataServiceClient::getInstance()->getApiProxy<EchoTestProxy>(1000);
-
-        for(int idx = 0; idx < 10000; idx++) {
-            std::string value = "value_echo_" + boost::lexical_cast<std::string>(idx);
-            ApiProxyResult r = echo_proxy_test->execute("key_echo", value);
-            int i = 0;
-            while (!r->wait()) {
-                std::cout << "Waint for result pass:" << i++<< "\n" << std::flush;
-                if(i>2) break;
-            }
-
-            if(r->getResult() != NULL) {
-                std::cout << r->getResult()->getJSONString() << "\n" << std::flush;
-                assert(value.compare(r->getResult()->getStringValue("key_echo")) == 0);
-            } else if(r->getError()){
-                std::cerr << "Error code:"<<r->getError() << "\n" << std::flush;
-                std::cerr << "Error Message:"<<r->getErrorMessage() <<  "\n" << std::flush;
-                std::cerr << "Error Domain:"<<r->getErrorDomain() <<  "\n" << std::flush;
-            } else {
-                std::cerr << "No result found";
-            }
-                //sleep for 100ms
-            usleep(100000);
-        }
-
-        std::cout << "Test finisched...waith 5 seconds befor quit\n" << std::flush;
-        sleep(5);
+        tg.add_thread(new boost::thread(&asyncTest, echo_proxy_test));
+        tg.add_thread(new boost::thread(&asyncTest, echo_proxy_test));
+        tg.join_all();
+        std::cout << "\nTest finisched with 2 thread\n" << std::flush;
+        std::cout << "global_counter"<<global_counter<<"\n" << std::flush;
+        std::cout << "error_count"<<error_count<<"\n" << std::flush;
+        std::cout << "no_result_count"<<no_result_count<<"\n" << std::flush;
+        //sleep(5);
         ChaosMetadataServiceClient::getInstance()->stop();
         ChaosMetadataServiceClient::getInstance()->deinit();
     }catch(chaos::CException& ex) {
diff --git a/ChaosSnapshotUtility/main.cpp b/ChaosSnapshotUtility/main.cpp
index c2b6b81ab58e6038bce66cec4ba389a7c24d2eaf..691e366492db21216001fe387de02abbd4f75caa 100644
--- a/ChaosSnapshotUtility/main.cpp
+++ b/ChaosSnapshotUtility/main.cpp
@@ -1,6 +1,6 @@
 /*
  *	main.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/ChaosWANProxy.cpp b/ChaosWANProxy/ChaosWANProxy.cpp
index 0d1bccc5290ced418f67f0a70b00d5a28a006c5c..ec102eeb29fb85785f2a66df1ecfe9f4a00fcc45 100644
--- a/ChaosWANProxy/ChaosWANProxy.cpp
+++ b/ChaosWANProxy/ChaosWANProxy.cpp
@@ -1,6 +1,6 @@
 /*
  *	ChaosWANProxy.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/ChaosWANProxy.h b/ChaosWANProxy/ChaosWANProxy.h
index 50188eb3bc8f361b415bf3f494142246bbf59754..c6ff52573bf2a80904fbc05285393e5eda92776a 100644
--- a/ChaosWANProxy/ChaosWANProxy.h
+++ b/ChaosWANProxy/ChaosWANProxy.h
@@ -1,6 +1,6 @@
 /*
  *	ChaosWANProxy.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/DefaultWANInterfaceHandler.cpp b/ChaosWANProxy/DefaultWANInterfaceHandler.cpp
index 1bc922d45dc61fe3073ab84585ba7389fd6578ca..862d89d6db45f8f021a39909879bfddfa9463194 100644
--- a/ChaosWANProxy/DefaultWANInterfaceHandler.cpp
+++ b/ChaosWANProxy/DefaultWANInterfaceHandler.cpp
@@ -1,6 +1,6 @@
 /*
  *	DefaultWANInterfaceHandler.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/DefaultWANInterfaceHandler.h b/ChaosWANProxy/DefaultWANInterfaceHandler.h
index 4d36ea1497ffe3ee6e41f701edcd61a7324b7792..926ffa6d4d36c29a4d7e872fd6b14170df590281 100644
--- a/ChaosWANProxy/DefaultWANInterfaceHandler.h
+++ b/ChaosWANProxy/DefaultWANInterfaceHandler.h
@@ -1,6 +1,6 @@
 /*
  *	DefaultWANInterfaceHandler.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/api/AbstractApi.cpp b/ChaosWANProxy/api/AbstractApi.cpp
index cd5dbee1b398c4c5724349e54f9f18b39e3b7e0c..479bab70b981379b1d0cad1af0dbf579587f5914 100644
--- a/ChaosWANProxy/api/AbstractApi.cpp
+++ b/ChaosWANProxy/api/AbstractApi.cpp
@@ -1,6 +1,6 @@
 /*
  *	AbstractApi.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/api/AbstractApi.h b/ChaosWANProxy/api/AbstractApi.h
index 061107a5b9757066546a78364e095761cd98e262..034d2d9435bc5ff28e68b35344e5ef3b7b8cf9c6 100644
--- a/ChaosWANProxy/api/AbstractApi.h
+++ b/ChaosWANProxy/api/AbstractApi.h
@@ -1,6 +1,6 @@
 /*
  *	AbstractApi.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/api/AbstractApiGroup.cpp b/ChaosWANProxy/api/AbstractApiGroup.cpp
index e9de25b871b58b94b9007438d435f3c834f18f92..95d88746fe07a231677c49c6aaa304cb5fafe7a1 100644
--- a/ChaosWANProxy/api/AbstractApiGroup.cpp
+++ b/ChaosWANProxy/api/AbstractApiGroup.cpp
@@ -1,6 +1,6 @@
 /*
  *	AbstractApiGroup.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/api/AbstractApiGroup.h b/ChaosWANProxy/api/AbstractApiGroup.h
index 81436635879709e436461b71f42a7078fe23d320..1257ea61452fa6d573545c1325363d0d6c369137 100644
--- a/ChaosWANProxy/api/AbstractApiGroup.h
+++ b/ChaosWANProxy/api/AbstractApiGroup.h
@@ -1,6 +1,6 @@
 /*
  *	AbstractApiGroup.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/api/PersistenceAccessor.cpp b/ChaosWANProxy/api/PersistenceAccessor.cpp
index 9aee6a215aee4ace67d670e59618865bfe070146..ffb80f76e0e5dd7254478c6117918d578b34c34c 100644
--- a/ChaosWANProxy/api/PersistenceAccessor.cpp
+++ b/ChaosWANProxy/api/PersistenceAccessor.cpp
@@ -1,6 +1,6 @@
 /*
  *	PersistenceAccessor.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/api/PersistenceAccessor.h b/ChaosWANProxy/api/PersistenceAccessor.h
index 3594d4039e129d6c50cf111556ba3f2be871b07f..7185db607f993444e656520ee780d938a5336005 100644
--- a/ChaosWANProxy/api/PersistenceAccessor.h
+++ b/ChaosWANProxy/api/PersistenceAccessor.h
@@ -1,6 +1,6 @@
 /*
  *	PersistenceAccessor.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/api/api.h b/ChaosWANProxy/api/api.h
index be338031704eb07661df641f61e19d363d466a3c..1793fbbf5fa262ee3228126c0fa36d538cd6e302 100644
--- a/ChaosWANProxy/api/api.h
+++ b/ChaosWANProxy/api/api.h
@@ -1,6 +1,6 @@
 /*
  *	api.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/api/api_types.h b/ChaosWANProxy/api/api_types.h
index 8ed4b501f64d9e507bc8e7e205e1ccd12f4a2ade..3180dd88a0603180998391cbbb0b20da04a801fb 100644
--- a/ChaosWANProxy/api/api_types.h
+++ b/ChaosWANProxy/api/api_types.h
@@ -1,6 +1,6 @@
 /*
  *	api_types.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/api/producer/ProducerGetLastDatasetApi.cpp b/ChaosWANProxy/api/producer/ProducerGetLastDatasetApi.cpp
index 5ce5cf8abba2dc15af147d5fe881d28d7832609b..819fde963334f11689f2aa38bbd5fe5e58060f17 100644
--- a/ChaosWANProxy/api/producer/ProducerGetLastDatasetApi.cpp
+++ b/ChaosWANProxy/api/producer/ProducerGetLastDatasetApi.cpp
@@ -1,6 +1,6 @@
 /*
  *	ProducerGetLastDatasetApi.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/api/producer/ProducerGetLastDatasetApi.h b/ChaosWANProxy/api/producer/ProducerGetLastDatasetApi.h
index d9669f890361ab7d8995752806bda0ef41434b60..d82238ca80bee69e19cad00b5e154314ceedc917 100644
--- a/ChaosWANProxy/api/producer/ProducerGetLastDatasetApi.h
+++ b/ChaosWANProxy/api/producer/ProducerGetLastDatasetApi.h
@@ -1,6 +1,6 @@
 /*
  *	ProducerGetLastDatasetApi
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/api/producer/ProducerGroup.cpp b/ChaosWANProxy/api/producer/ProducerGroup.cpp
index d1324fe3551bfd5fdc153016036051cc27d422af..f016a663485e9f9bfb61351ce28452f2b0419b91 100644
--- a/ChaosWANProxy/api/producer/ProducerGroup.cpp
+++ b/ChaosWANProxy/api/producer/ProducerGroup.cpp
@@ -1,6 +1,6 @@
 /*
  *	ProducerGroup.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/api/producer/ProducerGroup.h b/ChaosWANProxy/api/producer/ProducerGroup.h
index b94118e043dded71d5f5f8b5efa51fe783cd95d0..4762eabd7c16c1f96133da66aefaa10967d34b95 100644
--- a/ChaosWANProxy/api/producer/ProducerGroup.h
+++ b/ChaosWANProxy/api/producer/ProducerGroup.h
@@ -1,6 +1,6 @@
 /*
  *	ProducerGroup.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/api/producer/ProducerInsertDatasetApi.cpp b/ChaosWANProxy/api/producer/ProducerInsertDatasetApi.cpp
index 98a76f963719ed7002120510ce426de1a4acc2dc..f8be666e5bba5392cdbd7a0f7f246a6cb909acb1 100644
--- a/ChaosWANProxy/api/producer/ProducerInsertDatasetApi.cpp
+++ b/ChaosWANProxy/api/producer/ProducerInsertDatasetApi.cpp
@@ -1,6 +1,6 @@
 /*
  *	ProducerInsertDatasetApi.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/api/producer/ProducerInsertDatasetApi.h b/ChaosWANProxy/api/producer/ProducerInsertDatasetApi.h
index fe2e8bbf711b3402a281f646597099c1a34deb30..9a94fd880ceaa3af81e42dff2353bf77bc7780db 100644
--- a/ChaosWANProxy/api/producer/ProducerInsertDatasetApi.h
+++ b/ChaosWANProxy/api/producer/ProducerInsertDatasetApi.h
@@ -1,6 +1,6 @@
 /*
  *	ProducerInsertDatasetApi.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/api/producer/ProducerRegisterDatasetApi.cpp b/ChaosWANProxy/api/producer/ProducerRegisterDatasetApi.cpp
index a87b5ec3f656ed946f85150b3807426cf59a5393..15a0ef9c721472038da128cf1fda8bb520bbb9cf 100644
--- a/ChaosWANProxy/api/producer/ProducerRegisterDatasetApi.cpp
+++ b/ChaosWANProxy/api/producer/ProducerRegisterDatasetApi.cpp
@@ -1,6 +1,6 @@
 /*
  *	ProducerRegisterAPI.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/api/producer/ProducerRegisterDatasetApi.h b/ChaosWANProxy/api/producer/ProducerRegisterDatasetApi.h
index 31dc642eb515270cfe308288c7e64ba39e38e16b..6c10aaade6b1a920f3272dd5b90fbe9199b7e243 100644
--- a/ChaosWANProxy/api/producer/ProducerRegisterDatasetApi.h
+++ b/ChaosWANProxy/api/producer/ProducerRegisterDatasetApi.h
@@ -1,6 +1,6 @@
 /*
  *	ProducerRegisterDatasetApi.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/global_constant.h b/ChaosWANProxy/global_constant.h
index e626666146ed83fd7905593c273d969a46ede217..d451b27fd8890224b75fd85baa981f4b7ec2208b 100644
--- a/ChaosWANProxy/global_constant.h
+++ b/ChaosWANProxy/global_constant.h
@@ -1,6 +1,6 @@
 /*
  *	global_constant.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/global_type.h b/ChaosWANProxy/global_type.h
index b1335f1850aab6381a371de66360a1cdc44889c1..8a5f84d631027187fe22c197c9ab25ba5a8d3d69 100644
--- a/ChaosWANProxy/global_type.h
+++ b/ChaosWANProxy/global_type.h
@@ -1,6 +1,6 @@
 /*
  *	global_type.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/main.cpp b/ChaosWANProxy/main.cpp
index 32c12ad5dc685cca8c775ab9dc124319d2f89806..da48fde56babfe8b6b5eb41f5901e161d6633224 100644
--- a/ChaosWANProxy/main.cpp
+++ b/ChaosWANProxy/main.cpp
@@ -1,6 +1,6 @@
 /*
  *	main.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/persistence/AbstractPersistenceDriver.h b/ChaosWANProxy/persistence/AbstractPersistenceDriver.h
index febc553d96ae2e4e63453918b36d6f60eb6d68df..dd1fa0b12b0aa5dff71162478bab1bba1864caea 100644
--- a/ChaosWANProxy/persistence/AbstractPersistenceDriver.h
+++ b/ChaosWANProxy/persistence/AbstractPersistenceDriver.h
@@ -1,6 +1,6 @@
 /*
  *	AbstractPersistenceDriver.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/persistence/DefaultPersistenceDriver.cpp b/ChaosWANProxy/persistence/DefaultPersistenceDriver.cpp
index 1a85673d02d97b917a247c149c54c8c69f249b59..a6ebfbf1cbd1eedfadb4d695cd104af51029992e 100644
--- a/ChaosWANProxy/persistence/DefaultPersistenceDriver.cpp
+++ b/ChaosWANProxy/persistence/DefaultPersistenceDriver.cpp
@@ -1,6 +1,6 @@
 /*
  *	DefaultPersistenceDriver.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/persistence/DefaultPersistenceDriver.h b/ChaosWANProxy/persistence/DefaultPersistenceDriver.h
index 495580925c983b345fd533a26d3ee430a4ec3dd6..b420904e9f71793c386987d24df0ff54991a4e6e 100644
--- a/ChaosWANProxy/persistence/DefaultPersistenceDriver.h
+++ b/ChaosWANProxy/persistence/DefaultPersistenceDriver.h
@@ -1,6 +1,6 @@
 /*
  *	DefaultPersistenceDriver.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/utility/TypedConstrainedHashMap.h b/ChaosWANProxy/utility/TypedConstrainedHashMap.h
index 303b75d2a6afc0a46238e72bea422fe50384896d..04d4a5b5a17e7e989ca9928334944b36ee1219e0 100644
--- a/ChaosWANProxy/utility/TypedConstrainedHashMap.h
+++ b/ChaosWANProxy/utility/TypedConstrainedHashMap.h
@@ -1,6 +1,6 @@
 /*
  *	TypedConstrainedHashMap.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/wan_interface/AbstractWANInterface.cpp b/ChaosWANProxy/wan_interface/AbstractWANInterface.cpp
index 3ee77ae595d9d62dbbd659f7c56dc0547ee40d7d..70bb507b77e2b3fd9bc5ee2162e50211697b2645 100644
--- a/ChaosWANProxy/wan_interface/AbstractWANInterface.cpp
+++ b/ChaosWANProxy/wan_interface/AbstractWANInterface.cpp
@@ -1,6 +1,6 @@
 /*
  *	AbstractWANInterface.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/wan_interface/AbstractWANInterface.h b/ChaosWANProxy/wan_interface/AbstractWANInterface.h
index 3c0513985f7faea35ac5f2114aa342151e31fca0..acd1073d23c0bf35f49cad6696080e9cf732717d 100644
--- a/ChaosWANProxy/wan_interface/AbstractWANInterface.h
+++ b/ChaosWANProxy/wan_interface/AbstractWANInterface.h
@@ -1,6 +1,6 @@
 /*
  *	AbstractWANInterface.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/wan_interface/AbstractWANInterfaceResponse.cpp b/ChaosWANProxy/wan_interface/AbstractWANInterfaceResponse.cpp
index 4e142707a584a22ca1e5b4e25f0a3447f8efb22b..b87702a7ba2515d22a216e14556b35521bb42c9d 100644
--- a/ChaosWANProxy/wan_interface/AbstractWANInterfaceResponse.cpp
+++ b/ChaosWANProxy/wan_interface/AbstractWANInterfaceResponse.cpp
@@ -1,6 +1,6 @@
 /*
  *	AbstractWANInterfaceResponse.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh <year> INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/wan_interface/AbstractWANInterfaceResponse.h b/ChaosWANProxy/wan_interface/AbstractWANInterfaceResponse.h
index e48527b23b9d6b5650ef4f41a2a18371e88cc2c4..c55a9fc92612b7c41e36672bce29255d308de721 100644
--- a/ChaosWANProxy/wan_interface/AbstractWANInterfaceResponse.h
+++ b/ChaosWANProxy/wan_interface/AbstractWANInterfaceResponse.h
@@ -1,6 +1,6 @@
 /*
  *	AbstractWANInterfaceResponse
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh <year> INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/wan_interface/BaseWANInterfaceHandler.cpp b/ChaosWANProxy/wan_interface/BaseWANInterfaceHandler.cpp
index 21d5a2ee02fd0c950181c596fa5a31fe3e7e85d3..37f9358492a36ffdb5bde44bde7b1ef5d4a50936 100644
--- a/ChaosWANProxy/wan_interface/BaseWANInterfaceHandler.cpp
+++ b/ChaosWANProxy/wan_interface/BaseWANInterfaceHandler.cpp
@@ -1,6 +1,6 @@
 /*
  *	BaseWANInterfacelHandler.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/wan_interface/BaseWANInterfaceHandler.h b/ChaosWANProxy/wan_interface/BaseWANInterfaceHandler.h
index 227a1ad3dbc7791972604947cb89c5194c4d6183..2bdccbe5a401d447b27bbb4349f807efbe920143 100644
--- a/ChaosWANProxy/wan_interface/BaseWANInterfaceHandler.h
+++ b/ChaosWANProxy/wan_interface/BaseWANInterfaceHandler.h
@@ -1,6 +1,6 @@
 /*
  *	BaseWANInterfacelHandler.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/wan_interface/http/HTTPWANInterface.cpp b/ChaosWANProxy/wan_interface/http/HTTPWANInterface.cpp
index 9a7f94b2dd0583b9e239118354161eb2e1239f53..a22c44fbcf890dfbfaf27a07b54a84cc15a587a2 100644
--- a/ChaosWANProxy/wan_interface/http/HTTPWANInterface.cpp
+++ b/ChaosWANProxy/wan_interface/http/HTTPWANInterface.cpp
@@ -1,6 +1,6 @@
 /*
  *	HTTPWANInterface.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/wan_interface/http/HTTPWANInterface.h b/ChaosWANProxy/wan_interface/http/HTTPWANInterface.h
index 98abe06c88b22bd5e3a0b51322fff734e1202ab1..2f87791be01c232b530fe210e4c9592c8acb6678 100644
--- a/ChaosWANProxy/wan_interface/http/HTTPWANInterface.h
+++ b/ChaosWANProxy/wan_interface/http/HTTPWANInterface.h
@@ -1,6 +1,6 @@
 /*
  *	HTTPWANInterface.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/wan_interface/http/HTTPWANInterfaceRequest.cpp b/ChaosWANProxy/wan_interface/http/HTTPWANInterfaceRequest.cpp
index c3d55684079b747c744230d57df101a5eb36d38f..b0d6192960cc9f722fcd5b7fdcdd43c398e1e18e 100644
--- a/ChaosWANProxy/wan_interface/http/HTTPWANInterfaceRequest.cpp
+++ b/ChaosWANProxy/wan_interface/http/HTTPWANInterfaceRequest.cpp
@@ -1,6 +1,6 @@
 /*
  *	HTTPWANInterfaceRequest.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/wan_interface/http/HTTPWANInterfaceRequest.h b/ChaosWANProxy/wan_interface/http/HTTPWANInterfaceRequest.h
index d0088993d0bb73acf962303375445bdb25414ce1..efef451043d498e1357a673d7bdfe89fc7687718 100644
--- a/ChaosWANProxy/wan_interface/http/HTTPWANInterfaceRequest.h
+++ b/ChaosWANProxy/wan_interface/http/HTTPWANInterfaceRequest.h
@@ -1,6 +1,6 @@
 /*
  *	HTTPWANInterfaceRequest.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/wan_interface/http/HTTPWANInterfaceStringResponse.cpp b/ChaosWANProxy/wan_interface/http/HTTPWANInterfaceStringResponse.cpp
index 493566d3e2baf3aa74b1e099f06b34acb933ab70..2a15d3524441e24168294805838b101368fafec3 100644
--- a/ChaosWANProxy/wan_interface/http/HTTPWANInterfaceStringResponse.cpp
+++ b/ChaosWANProxy/wan_interface/http/HTTPWANInterfaceStringResponse.cpp
@@ -1,6 +1,6 @@
 /*
  *	HTTPWANInterfaceStringResponse.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh <year> INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/wan_interface/http/HTTPWANInterfaceStringResponse.h b/ChaosWANProxy/wan_interface/http/HTTPWANInterfaceStringResponse.h
index 88db4bcb97169c6422e013841acb0df7c5eee9ad..c5641839ba9a25949b4a3a12713bf8ca43c6cf05 100644
--- a/ChaosWANProxy/wan_interface/http/HTTPWANInterfaceStringResponse.h
+++ b/ChaosWANProxy/wan_interface/http/HTTPWANInterfaceStringResponse.h
@@ -1,6 +1,6 @@
 /*
  *	HTTPWANInterfaceStringResponse.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh <year> INFN, National Institute of Nuclear Physics
diff --git a/ChaosWANProxy/wan_interface/wan_interface.h b/ChaosWANProxy/wan_interface/wan_interface.h
index 4ea918c00b3ebcb5432b6751ab2cd05947577f5d..73c2d2e13713292a2c7ad58c85fab72a35cb45eb 100644
--- a/ChaosWANProxy/wan_interface/wan_interface.h
+++ b/ChaosWANProxy/wan_interface/wan_interface.h
@@ -1,6 +1,6 @@
 /*
  *	wan_interface.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh <year> INFN, National Institute of Nuclear Physics
diff --git a/TestCDSQuery/QueryTest.cpp b/TestCDSQuery/QueryTest.cpp
index b68168423827ce88521a500d27283c54dbece5f4..32dfc25cb064403819d035cb575ef9b4b0095e0a 100644
--- a/TestCDSQuery/QueryTest.cpp
+++ b/TestCDSQuery/QueryTest.cpp
@@ -1,6 +1,6 @@
 /*
  *	QueryTest.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/TestCDSQuery/QueryTest.h b/TestCDSQuery/QueryTest.h
index a9af74d1cb5054c6c879fce4bc4a27dd2d773a3d..dffa841a9585167d1ab96a812a6ee6d7376628db 100644
--- a/TestCDSQuery/QueryTest.h
+++ b/TestCDSQuery/QueryTest.h
@@ -1,6 +1,6 @@
 /*
  *	QueryTest.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/TestCDSQuery/main.cpp b/TestCDSQuery/main.cpp
index 43c755b05c99570f99e8880b4bf11ae217defb06..7f9ff067b4ef52d27d557458ffedff6d68e4714e 100644
--- a/TestCDSQuery/main.cpp
+++ b/TestCDSQuery/main.cpp
@@ -1,6 +1,6 @@
 /*
  *	main.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/ccs/MainController.cpp b/ccs/MainController.cpp
index df52bbbd0d776e2821a9b619904fd9dd2439489e..28588a386fa08961cf22f77f6528d117872e8272 100644
--- a/ccs/MainController.cpp
+++ b/ccs/MainController.cpp
@@ -58,22 +58,24 @@ void MainController::init(int argc, char **argv, QApplication& a) {
     QApplication::setOrganizationName("INFN-LNF");
 
     a.setStyle(QStyleFactory::create("Fusion"));
+    QColor dark_main(80,80,80);
 
     QPalette darkPalette;
-    darkPalette.setColor(QPalette::Window, QColor(53,53,53));
-    darkPalette.setColor(QPalette::WindowText, Qt::white);
+    darkPalette.setColor(QPalette::Window, dark_main);
+    darkPalette.setColor(QPalette::WindowText, QColor(220,220,220));
     darkPalette.setColor(QPalette::Base, QColor(25,25,25));
-    darkPalette.setColor(QPalette::AlternateBase, QColor(53,53,53));
+    darkPalette.setColor(QPalette::AlternateBase, dark_main);
     darkPalette.setColor(QPalette::ToolTipBase, Qt::white);
     darkPalette.setColor(QPalette::ToolTipText, Qt::white);
-    darkPalette.setColor(QPalette::Text, Qt::white);
-    darkPalette.setColor(QPalette::Button, QColor(53,53,53));
+    darkPalette.setColor(QPalette::Text, QColor(220,220,220));
+    darkPalette.setColor(QPalette::Button, dark_main);
     darkPalette.setColor(QPalette::ButtonText, Qt::white);
     darkPalette.setColor(QPalette::BrightText, Qt::red);
     darkPalette.setColor(QPalette::Link, QColor(42, 130, 218));
 
     darkPalette.setColor(QPalette::Highlight, QColor(42, 130, 218));
     darkPalette.setColor(QPalette::HighlightedText, Qt::black);
+    darkPalette.setColor(QPalette::Disabled, QPalette::ButtonText, QColor(155,155,155));
 
     a.setPalette(darkPalette);
     a.setStyleSheet("QToolTip { color: #ffffff; background-color: #2a82da; border: 1px solid white; }");
diff --git a/ccs/ccs.pro b/ccs/ccs.pro
index db8d1730327fbe09b3d28a24af9613331b8a3abe..535e7145e27bf51b53e69b063507a4e969c902db 100644
--- a/ccs/ccs.pro
+++ b/ccs/ccs.pro
@@ -41,7 +41,9 @@ SOURCES += main.cpp\
     api_async_processor/ApiAsyncRunnable.cpp \
     MainController.cpp \
     node/unit_server/UnitServerEditor.cpp \
-    node/control_unit/ControUnitInstanceEditor.cpp
+    node/control_unit/ControUnitInstanceEditor.cpp \
+    node/control_unit/DriverDescriptionInputDialog.cpp \
+    node/control_unit/AttributeValueRangeDialog.cpp
 
 HEADERS  += mainwindow.h \
     search/SearchNodeResult.h \
@@ -53,15 +55,17 @@ HEADERS  += mainwindow.h \
     api_async_processor/ApiAsyncRunnable.h \
     MainController.h \
     node/unit_server/UnitServerEditor.h \
-    node/control_unit/ControUnitInstanceEditor.h
+    node/control_unit/ControUnitInstanceEditor.h \
+    node/control_unit/DriverDescriptionInputDialog.h \
+    node/control_unit/AttributeValueRangeDialog.h
 
 FORMS    += mainwindow.ui \
     search/searchnoderesult.ui \
     search/searchnode.ui \
     node/unit_server/UnitServerEditor.ui \
-    node/control_unit/ControUnitInstanceEditor.ui
+    node/control_unit/ControUnitInstanceEditor.ui \
+    node/control_unit/DriverDescriptionInputDialog.ui \
+    node/control_unit/AttributeValueRangeDialog.ui
 
 DISTFILES += \
-    dark_orange.stylesheet \
-    node/unit_server/Test.qml \
-    node/unit_server/TestForm.ui.qml
+    dark_orange.stylesheet
diff --git a/ccs/mainwindow.cpp b/ccs/mainwindow.cpp
index 69168f7b0d104743c4eee110ddde4ad716eb9036..0857f58b1383a66bb68f4b8fd146f6adb7b70eac 100644
--- a/ccs/mainwindow.cpp
+++ b/ccs/mainwindow.cpp
@@ -2,6 +2,7 @@
 #include "ui_mainwindow.h"
 #include "search/SearchNode.h"
 #include "node/unit_server/UnitServerEditor.h"
+#include "search/SearchNodeResult.h"
 
 #include <QInputDialog>
 MainWindow::MainWindow(QWidget *parent) :
@@ -30,7 +31,7 @@ MainWindow::~MainWindow()
     delete ui;
 }
 
-void MainWindow::on_actionOpen_Node_triggered()
+void MainWindow::on_actionOpenNode_triggered()
 {
     //opena a specified node, knowing the unique identifier
     bool ok;
@@ -53,6 +54,9 @@ void MainWindow::on_actionOpen_Node_triggered()
             command_presenter->showCommandPresenter(new UnitServerEditor(node_uid));
         }
     }
+}
 
-
+void MainWindow::on_actionSearch_Node_triggered()
+{
+    command_presenter->showCommandPresenter(new SearchNodeResult());
 }
diff --git a/ccs/mainwindow.h b/ccs/mainwindow.h
index a6acc796bb16786bb30a1b356b6841210752a119..7e98410564ad445437ddec5bc872712a6f85f0a1 100644
--- a/ccs/mainwindow.h
+++ b/ccs/mainwindow.h
@@ -17,7 +17,9 @@ public:
     ~MainWindow();
 
 private slots:
-    void on_actionOpen_Node_triggered();
+    void on_actionOpenNode_triggered();
+
+    void on_actionSearch_Node_triggered();
 
 private:
     Ui::MainWindow *ui;
diff --git a/ccs/mainwindow.ui b/ccs/mainwindow.ui
index 658f3b52644a10ac9332f40614ce8a0cb9d3a8f0..3b9ad20d7599e36d81c693ab52cb80de51b4b2ca 100644
--- a/ccs/mainwindow.ui
+++ b/ccs/mainwindow.ui
@@ -72,18 +72,23 @@
    <property name="nativeMenuBar">
     <bool>true</bool>
    </property>
-   <widget class="QMenu" name="menuNodes">
-    <property name="font">
-     <font>
-      <pointsize>11</pointsize>
-     </font>
+   <widget class="QMenu" name="menuNode">
+    <property name="title">
+     <string>Node</string>
     </property>
+    <addaction name="actionOpenNode"/>
+    <addaction name="actionSearch_Node"/>
+   </widget>
+   <widget class="QMenu" name="menuWindows">
     <property name="title">
-     <string>Nodes</string>
+     <string>Windows</string>
     </property>
-    <addaction name="actionOpen_Node"/>
+    <addaction name="actionCascade"/>
+    <addaction name="actionNext_window"/>
+    <addaction name="actionPrev_Window"/>
    </widget>
-   <addaction name="menuNodes"/>
+   <addaction name="menuNode"/>
+   <addaction name="menuWindows"/>
   </widget>
   <widget class="QToolBar" name="mainToolBar">
    <attribute name="toolBarArea">
@@ -139,21 +144,97 @@
    </attribute>
    <widget class="QWidget" name="dockWidgetContents"/>
   </widget>
-  <action name="actionOpen_Node">
+  <action name="actionOpenNode">
    <property name="text">
     <string>Open Node</string>
    </property>
-   <property name="font">
-    <font>
-     <pointsize>12</pointsize>
-    </font>
-   </property>
    <property name="shortcut">
     <string>Ctrl+O</string>
    </property>
   </action>
+  <action name="actionSearch_Node">
+   <property name="text">
+    <string>Search Node</string>
+   </property>
+   <property name="shortcut">
+    <string>Ctrl+F</string>
+   </property>
+  </action>
+  <action name="actionCascade">
+   <property name="text">
+    <string>Cascade</string>
+   </property>
+   <property name="shortcut">
+    <string>Meta+Ctrl+C</string>
+   </property>
+  </action>
+  <action name="actionNext_window">
+   <property name="text">
+    <string>Next Window</string>
+   </property>
+   <property name="shortcut">
+    <string>Meta+Ctrl+Left</string>
+   </property>
+  </action>
+  <action name="actionPrev_Window">
+   <property name="text">
+    <string>Prev Window</string>
+   </property>
+   <property name="shortcut">
+    <string>Meta+Ctrl+Right</string>
+   </property>
+  </action>
  </widget>
  <layoutdefault spacing="6" margin="11"/>
  <resources/>
- <connections/>
+ <connections>
+  <connection>
+   <sender>actionCascade</sender>
+   <signal>triggered()</signal>
+   <receiver>mdiAreaEditor</receiver>
+   <slot>cascadeSubWindows()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>-1</x>
+     <y>-1</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>602</x>
+     <y>349</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>actionPrev_Window</sender>
+   <signal>triggered()</signal>
+   <receiver>mdiAreaEditor</receiver>
+   <slot>activatePreviousSubWindow()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>-1</x>
+     <y>-1</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>602</x>
+     <y>349</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>actionNext_window</sender>
+   <signal>triggered()</signal>
+   <receiver>mdiAreaEditor</receiver>
+   <slot>activateNextSubWindow()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>-1</x>
+     <y>-1</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>602</x>
+     <y>349</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
 </ui>
diff --git a/ccs/node/control_unit/AttributeValueRangeDialog.cpp b/ccs/node/control_unit/AttributeValueRangeDialog.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..cda907b1c78af8198592627aca7b001dd7eca609
--- /dev/null
+++ b/ccs/node/control_unit/AttributeValueRangeDialog.cpp
@@ -0,0 +1,66 @@
+#include "AttributeValueRangeDialog.h"
+#include "ui_AttributeValueRangeDialog.h"
+
+
+AttributeValueRangeDialog::AttributeValueRangeDialog(QWidget *parent) :
+    QDialog(parent),
+    current_row(-1),
+    attribute_name(QString("")),
+    attribute_default_value(QString("")),
+    attribute_default_max_value(QString("")),
+    attribute_default_min_value(QString("")),
+    ui(new Ui::AttributeValueRangeDialog)
+{
+    ui->setupUi(this);
+    connect(ui->buttonBox, SIGNAL(accepted()),
+            this, SLOT(endWork()));
+    setModal(true);
+}
+
+AttributeValueRangeDialog::AttributeValueRangeDialog(int _current_row,
+                                                     const QString& _attribute_name,
+                                                     const QString& _attribute_default_value,
+                                                     const QString& _attribute_default_max_value,
+                                                     const QString& _attribute_default_min_value,
+                                                     QWidget *parent):
+    QDialog(parent),
+    current_row(_current_row),
+    attribute_name(_attribute_name),
+    attribute_default_value(_attribute_default_value),
+    attribute_default_max_value(_attribute_default_max_value),
+    attribute_default_min_value(_attribute_default_min_value),
+    ui(new Ui::AttributeValueRangeDialog)
+{
+    ui->setupUi(this);
+    connect(ui->buttonBox, SIGNAL(accepted()),
+            this, SLOT(endWork()));
+    setModal(true);
+
+    //set the value for the editing
+    ui->lineEditAttributeName->setText(_attribute_name);
+    ui->lineEditDefaultValue->setText(_attribute_default_value);
+    ui->lineEditMaxValue->setText(_attribute_default_max_value);
+    ui->lineEditMinValue->setText(_attribute_default_min_value);
+}
+
+AttributeValueRangeDialog::~AttributeValueRangeDialog()
+{
+    delete ui;
+}
+
+void AttributeValueRangeDialog::endWork() {
+    if(current_row > -1) {
+        //we are updating a driver description so emit the rigth signal
+        emit updateAttributeDescription(current_row,
+                                        ui->lineEditAttributeName->text(),
+                                        ui->lineEditDefaultValue->text(),
+                                        ui->lineEditMaxValue->text(),
+                                        ui->lineEditMinValue->text());
+    } else {
+        //emit the value of the driver because user has accepted
+        emit newAttributeDescription(ui->lineEditAttributeName->text(),
+                                     ui->lineEditDefaultValue->text(),
+                                     ui->lineEditMaxValue->text(),
+                                     ui->lineEditMinValue->text());
+    }
+}
diff --git a/ccs/node/control_unit/AttributeValueRangeDialog.h b/ccs/node/control_unit/AttributeValueRangeDialog.h
new file mode 100644
index 0000000000000000000000000000000000000000..0325333feceafc83903257fecfbd11349fae6653
--- /dev/null
+++ b/ccs/node/control_unit/AttributeValueRangeDialog.h
@@ -0,0 +1,45 @@
+#ifndef ATTRIBUTEVALUERANGEDIALOG_H
+#define ATTRIBUTEVALUERANGEDIALOG_H
+
+#include <QDialog>
+
+namespace Ui {
+class AttributeValueRangeDialog;
+}
+
+class AttributeValueRangeDialog : public QDialog
+{
+    Q_OBJECT
+    int current_row;
+    const QString& attribute_name;
+    const QString& attribute_default_value;
+    const QString& attribute_default_max_value;
+    const QString& attribute_default_min_value;
+public:
+    AttributeValueRangeDialog(QWidget *parent = 0);
+    AttributeValueRangeDialog(int _current_row,
+                              const QString& _attribute_name,
+                              const QString& _attribute_default_value,
+                              const QString& _attribute_default_max_value,
+                              const QString& _attribute_default_min_value,
+                              QWidget *parent = 0);
+    ~AttributeValueRangeDialog();
+private slots:
+    void endWork();
+
+signals:
+    void newAttributeDescription(const QString& attribute_name,
+                                 const QString& attribute_default_value,
+                                 const QString& attribute_default_max_value,
+                                 const QString& attribute_default_min_value);
+    void updateAttributeDescription(int current_row,
+                                    const QString& attribute_name,
+                                    const QString& attribute_default_value,
+                                    const QString& attribute_default_max_value,
+                                    const QString& attribute_default_min_value);
+
+private:
+    Ui::AttributeValueRangeDialog *ui;
+};
+
+#endif // ATTRIBUTEVALUERANGEDIALOG_H
diff --git a/ccs/node/control_unit/AttributeValueRangeDialog.ui b/ccs/node/control_unit/AttributeValueRangeDialog.ui
new file mode 100644
index 0000000000000000000000000000000000000000..f8b0ef61b66e9481e9c38d9c5c2caa98145a5b71
--- /dev/null
+++ b/ccs/node/control_unit/AttributeValueRangeDialog.ui
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>AttributeValueRangeDialog</class>
+ <widget class="QDialog" name="AttributeValueRangeDialog">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>405</width>
+    <height>170</height>
+   </rect>
+  </property>
+  <property name="minimumSize">
+   <size>
+    <width>400</width>
+    <height>170</height>
+   </size>
+  </property>
+  <property name="windowTitle">
+   <string>Dialog</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <property name="spacing">
+    <number>4</number>
+   </property>
+   <property name="leftMargin">
+    <number>2</number>
+   </property>
+   <property name="topMargin">
+    <number>2</number>
+   </property>
+   <property name="rightMargin">
+    <number>2</number>
+   </property>
+   <property name="bottomMargin">
+    <number>2</number>
+   </property>
+   <item>
+    <layout class="QGridLayout" name="gridLayout">
+     <item row="0" column="1">
+      <widget class="QLineEdit" name="lineEditAttributeName"/>
+     </item>
+     <item row="2" column="0" alignment="Qt::AlignRight">
+      <widget class="QLabel" name="label_3">
+       <property name="text">
+        <string>Max value:</string>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="0" alignment="Qt::AlignRight">
+      <widget class="QLabel" name="label">
+       <property name="text">
+        <string>Name:</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="0">
+      <widget class="QLabel" name="label_2">
+       <property name="text">
+        <string>Default value</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="1">
+      <widget class="QLineEdit" name="lineEditDefaultValue"/>
+     </item>
+     <item row="3" column="0" alignment="Qt::AlignRight">
+      <widget class="QLabel" name="label_4">
+       <property name="text">
+        <string>Min value:</string>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="1">
+      <widget class="QLineEdit" name="lineEditMaxValue"/>
+     </item>
+     <item row="3" column="1">
+      <widget class="QLineEdit" name="lineEditMinValue"/>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <widget class="QDialogButtonBox" name="buttonBox">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="standardButtons">
+      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>accepted()</signal>
+   <receiver>AttributeValueRangeDialog</receiver>
+   <slot>accept()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>248</x>
+     <y>254</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>157</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>rejected()</signal>
+   <receiver>AttributeValueRangeDialog</receiver>
+   <slot>reject()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>316</x>
+     <y>260</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>286</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>
diff --git a/ccs/node/control_unit/ControUnitInstanceEditor.cpp b/ccs/node/control_unit/ControUnitInstanceEditor.cpp
index 8ca79aa074ed6a8f9b076cc1a37029a5aab4fc73..9d3430c9aa53d9ab161c779eab25b6da125f58f9 100644
--- a/ccs/node/control_unit/ControUnitInstanceEditor.cpp
+++ b/ccs/node/control_unit/ControUnitInstanceEditor.cpp
@@ -1,38 +1,41 @@
 #include "ControUnitInstanceEditor.h"
 #include "ui_ControUnitInstanceEditor.h"
+#include "DriverDescriptionInputDialog.h"
+#include "AttributeValueRangeDialog.h"
+
+#include <QDebug>
+#include <QStandardItem>
+#include <QMessageBox>
+
+#include <cassert>
 
 using namespace chaos::common::data;
-ControUnitInstanceEditor::ControUnitInstanceEditor(const QString& unit_server_uid) :
-    PresenterWidget(NULL),
-    unit_server_uid(unit_server_uid),
-    control_unit_type(""),
-    control_unit_uid(""),
-    ui(new Ui::ControUnitInstanceEditor)
-{
-    ui->setupUi(this);
-}
+using namespace chaos::metadata_service_client;
+using namespace chaos::metadata_service_client::api_proxy;
+using namespace chaos::metadata_service_client::api_proxy::control_unit;
 
 ControUnitInstanceEditor::ControUnitInstanceEditor(const QString& unit_server_uid,
                                                    const QString& control_unit_type):
     PresenterWidget(NULL),
-    unit_server_uid(unit_server_uid),
-    control_unit_type(control_unit_type),
-    control_unit_uid(""),
+    is_in_editing(false),
     ui(new Ui::ControUnitInstanceEditor)
 {
     ui->setupUi(this);
+    ui->labelUnitServer->setText(unit_server_uid);
+    ui->labelControlUnitType->setText(control_unit_type);
 }
 
 ControUnitInstanceEditor::ControUnitInstanceEditor(const QString& unit_server_uid,
-                                                   const QString& control_unit_type,
-                                                   const QString& control_unit_uid):
+                                                   const QString& control_unit_uid,
+                                                   bool edit_instance):
     PresenterWidget(NULL),
-    unit_server_uid(unit_server_uid),
-    control_unit_type(control_unit_type),
-    control_unit_uid(control_unit_uid),
+    is_in_editing(edit_instance),
     ui(new Ui::ControUnitInstanceEditor)
 {
     ui->setupUi(this);
+    ui->labelUnitServer->setText(unit_server_uid);
+    ui->lineEditControlUnitUniqueID->setText(control_unit_uid);
+    ui->lineEditControlUnitUniqueID->setEnabled(false);
 }
 
 ControUnitInstanceEditor::~ControUnitInstanceEditor()
@@ -41,17 +44,12 @@ ControUnitInstanceEditor::~ControUnitInstanceEditor()
 }
 
 void ControUnitInstanceEditor::initUI() {
-
-    //initilization view
-    is_in_editing = unit_server_uid.size() &&
-            control_unit_type.size() &&
-            control_unit_uid.size();
+    //fetch the api proxy
+    set_inst_desc_proxy = ChaosMetadataServiceClient::getInstance()->getApiProxy<SetInstanceDescription>();
+    get_instance_api_proxy = ChaosMetadataServiceClient::getInstance()->getApiProxy<GetInstance>();
 
     //setting the default info
-    ui->labelUnitServer->setText(unit_server_uid);
-    ui->labelControlUnitType->setText(control_unit_type);
     if(is_in_editing) {
-        ui->lineEditControlUnitUniqueID->setText(control_unit_uid);
         setTabTitle(tr("Control unit instance editing"));
     }else{
         setTabTitle(tr("Control unit instance creation"));
@@ -77,9 +75,9 @@ void ControUnitInstanceEditor::initUI() {
 
     table_model_dataset_attribute_setup = new QStandardItemModel(this);
     table_model_dataset_attribute_setup->setHorizontalHeaderItem(0, new QStandardItem(QString("Name")));
-    table_model_dataset_attribute_setup->setHorizontalHeaderItem(1, new QStandardItem(QString("Max Value")));
-    table_model_dataset_attribute_setup->setHorizontalHeaderItem(2, new QStandardItem(QString("Min Value")));
-    table_model_dataset_attribute_setup->setHorizontalHeaderItem(3, new QStandardItem(QString("Default Value")));
+    table_model_dataset_attribute_setup->setHorizontalHeaderItem(1, new QStandardItem(QString("Default Value")));
+    table_model_dataset_attribute_setup->setHorizontalHeaderItem(2, new QStandardItem(QString("Max Value")));
+    table_model_dataset_attribute_setup->setHorizontalHeaderItem(3, new QStandardItem(QString("Min Value")));
 
     // Attach the model to the view
     ui->tableViewDatasetAttributes->setModel(table_model_dataset_attribute_setup);
@@ -90,6 +88,156 @@ void ControUnitInstanceEditor::initUI() {
     //finisch to configure table
     ui->tableViewDatasetAttributes->setEditTriggers(QAbstractItemView::NoEditTriggers);
     ui->tableViewDatasetAttributes->setSelectionBehavior(QAbstractItemView::SelectRows);
+
+    //widget connection initialization
+    connect(ui->tableViewDriverSpecification->selectionModel(),
+            SIGNAL(currentChanged(QModelIndex,QModelIndex)),
+            SLOT(tableDriverDescriptionCurrentChanged(QModelIndex,QModelIndex)));
+
+    connect(ui->tableViewDriverSpecification->selectionModel(),
+            SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
+            SLOT(tableDriverDescriptionSelectionChanged(QItemSelection,QItemSelection)));
+
+    connect(ui->tableViewDatasetAttributes->selectionModel(),
+            SIGNAL(currentChanged(QModelIndex,QModelIndex)),
+            SLOT(tableDriverDescriptionCurrentChanged(QModelIndex,QModelIndex)));
+
+    connect(ui->tableViewDatasetAttributes->selectionModel(),
+            SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
+            SLOT(tableDriverDescriptionSelectionChanged(QItemSelection,QItemSelection)));
+
+    if(is_in_editing) {
+        //get information from server
+        submitApiResult(QString("get_instance"),
+                        get_instance_api_proxy->execute(ui->labelUnitServer->text().toStdString(),
+                                                        ui->lineEditControlUnitUniqueID->text().toStdString()));
+    }
+
+}
+
+SetInstanceDescription *ControUnitInstanceEditor::prepareSetInstanceApi() {
+    assert(set_inst_desc_proxy);
+    //cu id
+    set_inst_desc_proxy->control_unit_uid = ui->lineEditControlUnitUniqueID->text().toStdString();
+    //us id
+    set_inst_desc_proxy->unit_server_uid = ui->labelUnitServer->text().toStdString();
+    //cu implementation
+    set_inst_desc_proxy->control_unit_implementation = ui->labelControlUnitType->text().toStdString();
+    //autoload
+    set_inst_desc_proxy->auto_load = ui->checkBoxAutoLoad->isChecked();
+    //load parameter
+    set_inst_desc_proxy->load_parameter = ui->textEditLoadParameter->toPlainText().toStdString();
+    //add all driver description
+    set_inst_desc_proxy->clearAllDriverDescriptions();
+    for(int idx = 0;
+        idx < table_model_driver_spec->rowCount();
+        idx++) {
+        QString drv_name = table_model_driver_spec->item(idx, 0)->text();
+        QString drv_vers = table_model_driver_spec->item(idx, 1)->text();
+        QString drv_init = table_model_driver_spec->item(idx, 2)->text();
+        set_inst_desc_proxy->addDriverDesscription(drv_name.toStdString(),
+                                                   drv_vers.toStdString(),
+                                                   drv_init.toStdString());
+        qDebug() << "Added driver description for: "<< drv_name << "-" << drv_vers <<"-"<<drv_init;
+    }
+
+    //add all attribute description
+    set_inst_desc_proxy->clearAllAttributeConfig();
+    for(int idx = 0;
+        idx < table_model_dataset_attribute_setup->rowCount();
+        idx++) {
+        QString attr_name = table_model_dataset_attribute_setup->item(idx, 0)->text();
+        QString attr_def = table_model_dataset_attribute_setup->item(idx, 1)->text();
+        QString attr_max = table_model_dataset_attribute_setup->item(idx, 2)->text();
+        QString attr_min = table_model_dataset_attribute_setup->item(idx, 3)->text();
+        set_inst_desc_proxy->addAttributeConfig(attr_name.toStdString(),
+                                                attr_def.toStdString(),
+                                                attr_max.toStdString(),
+                                                attr_min.toStdString());
+        qDebug() << "Added attribute description for: "<< attr_name <<"-" << attr_def << " of ["<<attr_min<<"/"<<attr_max<<"]";
+    }
+    return set_inst_desc_proxy;
+}
+
+#define CHECK_AND_SET_LABEL(x,v)  if(api_result->hasKey(x)) {  v->setText(QString::fromStdString(api_result->getStringValue(x))); } else {  v->setText(QString());}
+#define CHECK_AND_SET_CHECK(x,v) if(api_result->hasKey(x)) { v->setChecked(api_result->getBoolValue(x)); } else {  v->setChecked(false);}
+
+void ControUnitInstanceEditor::fillUIFromInstanceInfo(QSharedPointer<chaos::common::data::CDataWrapper> api_result) {
+    table_model_driver_spec->setRowCount(0);
+    table_model_dataset_attribute_setup->setRowCount(0);
+
+    CHECK_AND_SET_LABEL(chaos::NodeDefinitionKey::NODE_PARENT, ui->labelUnitServer)
+            CHECK_AND_SET_LABEL(chaos::NodeDefinitionKey::NODE_UNIQUE_ID, ui->lineEditControlUnitUniqueID)
+            CHECK_AND_SET_LABEL("control_unit_implementation", ui->labelControlUnitType)
+            CHECK_AND_SET_CHECK("auto_load", ui->checkBoxAutoLoad)
+            CHECK_AND_SET_LABEL("load_parameter", ui->textEditLoadParameter)
+
+            //add driverdesc
+            if(api_result->hasKey("driver_description")) {
+        std::auto_ptr<CMultiTypeDataArrayWrapper> arr_drv(api_result->getVectorValue("driver_description"));
+        for(int idx = 0;
+            idx != arr_drv->size();
+            idx++) {
+            std::auto_ptr<CDataWrapper> drv_desc(arr_drv->getCDataWrapperElementAtIndex(idx));
+
+            QStandardItem *item = NULL;
+            QList<QStandardItem*> row_item;
+            row_item.append(item = new QStandardItem(QString::fromStdString(drv_desc->getStringValue("name"))));
+            item->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled);
+
+            row_item.append(item = new QStandardItem(QString::fromStdString(drv_desc->getStringValue("version"))));
+            item->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled);
+
+            row_item.append(item = new QStandardItem(QString::fromStdString(drv_desc->getStringValue("init_parameter"))));
+            item->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled);
+            table_model_driver_spec->appendRow(row_item);
+
+            ui->pushButtonEditDriverDescription->setEnabled(false);
+        }
+    }
+    //add attribute desc
+    if(api_result->hasKey("attribute_value_descriptions")) {
+        std::auto_ptr<CMultiTypeDataArrayWrapper> arr_attr(api_result->getVectorValue("attribute_value_descriptions"));
+        for(int idx = 0;
+            idx != arr_attr->size();
+            idx++) {
+            std::auto_ptr<CDataWrapper> attr_desc(arr_attr->getCDataWrapperElementAtIndex(idx));
+
+            QStandardItem *item = NULL;
+            QList<QStandardItem*> row_item;
+            if(attr_desc->hasKey(chaos::ControlUnitNodeDefinitionKey::CONTROL_UNIT_DATASET_ATTRIBUTE_NAME)) {
+                row_item.append(item = new QStandardItem(QString::fromStdString(attr_desc->getStringValue(chaos::ControlUnitNodeDefinitionKey::CONTROL_UNIT_DATASET_ATTRIBUTE_NAME))));
+            } else {
+                row_item.append(item = new QStandardItem(QString()));
+            }
+            item->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled);
+
+            if(attr_desc->hasKey(chaos::ControlUnitNodeDefinitionKey::CONTROL_UNIT_DATASET_DEFAULT_VALUE)) {
+                row_item.append(item = new QStandardItem(QString::fromStdString(attr_desc->getStringValue(chaos::ControlUnitNodeDefinitionKey::CONTROL_UNIT_DATASET_DEFAULT_VALUE))));
+            } else {
+                row_item.append(item = new QStandardItem(QString()));
+            }
+            item->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled);
+
+            if(attr_desc->hasKey(chaos::ControlUnitNodeDefinitionKey::CONTROL_UNIT_DATASET_MAX_RANGE)) {
+                row_item.append(item = new QStandardItem(QString::fromStdString(attr_desc->getStringValue(chaos::ControlUnitNodeDefinitionKey::CONTROL_UNIT_DATASET_MAX_RANGE))));
+            } else {
+                row_item.append(item = new QStandardItem(QString()));
+            }
+            item->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled);
+
+            if(attr_desc->hasKey(chaos::ControlUnitNodeDefinitionKey::CONTROL_UNIT_DATASET_MIN_RANGE)) {
+                row_item.append(item = new QStandardItem(QString::fromStdString(attr_desc->getStringValue(chaos::ControlUnitNodeDefinitionKey::CONTROL_UNIT_DATASET_MIN_RANGE))));
+            } else {
+                row_item.append(item = new QStandardItem(QString()));
+            }
+            item->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled);
+            table_model_dataset_attribute_setup->appendRow(row_item);
+
+            ui->pushButtonEditAttribute->setEnabled(false);
+        }
+    }
+
 }
 
 bool ControUnitInstanceEditor::canClose() {
@@ -98,5 +246,185 @@ bool ControUnitInstanceEditor::canClose() {
 
 void ControUnitInstanceEditor::onApiDone(QString tag,
                                          QSharedPointer<CDataWrapper> api_result) {
+    if(tag.compare("save_instance") == 0) {
+        QMessageBox::information(this,
+                                 tr("Instance Save"),
+                                 tr("Instance has been successfull saved"));
+        //close editor
+        closeTab();
+    } else if(tag.compare("get_instance") == 0) {
+        //fill gui with instance info
+        fillUIFromInstanceInfo(api_result);
+    }
+}
 
+void ControUnitInstanceEditor::on_pushButtonSaveInstance_clicked()
+{
+    submitApiResult(QString("save_instance"),
+                    prepareSetInstanceApi()->execute());
+}
+
+void ControUnitInstanceEditor::on_pushButtonAddDriverDescription_clicked()
+{
+    //add new driver description
+    DriverDescriptionInputDialog new_driver_dialog(this);
+    connect(&new_driver_dialog,
+            SIGNAL(newDriverDescription(QString,QString,QString)),
+            SLOT(addNewDriverDescription(QString,QString,QString)));
+    new_driver_dialog.exec();
+}
+
+void ControUnitInstanceEditor::on_pushButtonEditDriverDescription_clicked()
+{
+    //mod driver description
+    QModelIndex current_index = ui->tableViewDriverSpecification->selectionModel()->selectedRows().first();
+    DriverDescriptionInputDialog edit_driver_dialog(current_index.row(),
+                                                    table_model_driver_spec->item(current_index.row(), 0)->text(),
+                                                    table_model_driver_spec->item(current_index.row(), 1)->text(),
+                                                    table_model_driver_spec->item(current_index.row(), 2)->text(),
+                                                    this);
+    connect(&edit_driver_dialog,
+            SIGNAL(updateDriverDescription(int,QString,QString,QString)),
+            SLOT(updateDriverDescription(int,QString,QString,QString)));
+    edit_driver_dialog.exec();
+}
+
+void ControUnitInstanceEditor::on_pushButtonDeleteDriverDescription_clicked()
+{
+    //delete driver description
+    QModelIndexList selected_row = ui->tableViewDriverSpecification->selectionModel()->selectedIndexes();
+    foreach(QModelIndex index, selected_row) {
+        table_model_driver_spec->removeRow(index.row());
+    }
 }
+
+
+void ControUnitInstanceEditor::on_pushButtonAddAttribute_clicked()
+{
+    //add new attribute description
+    AttributeValueRangeDialog new_attr_dialog(this);
+    connect(&new_attr_dialog,
+            SIGNAL(newAttributeDescription(QString,QString,QString,QString)),
+            SLOT(addAttributeDescription(QString,QString,QString,QString)));
+    new_attr_dialog.exec();
+}
+
+void ControUnitInstanceEditor::on_pushButtonEditAttribute_clicked()
+{
+    //add new attribute description
+    //mod driver description
+    QModelIndex current_index = ui->tableViewDatasetAttributes->selectionModel()->selectedRows().first();
+    AttributeValueRangeDialog edit_attr_dialog(current_index.row(),
+                                               table_model_dataset_attribute_setup->item(current_index.row(), 0)->text(),
+                                               table_model_dataset_attribute_setup->item(current_index.row(), 1)->text(),
+                                               table_model_dataset_attribute_setup->item(current_index.row(), 2)->text(),
+                                               table_model_dataset_attribute_setup->item(current_index.row(), 3)->text(),
+                                               this);
+    connect(&edit_attr_dialog,
+            SIGNAL(updateAttributeDescription(int,QString,QString,QString,QString)),
+            SLOT(updateAttributeDescription(int,QString,QString,QString,QString)));
+    edit_attr_dialog.exec();
+}
+
+void ControUnitInstanceEditor::on_pushButtonRemoveAttribute_clicked()
+{
+    //delete driver description
+    QModelIndexList selected_row = ui->tableViewDatasetAttributes->selectionModel()->selectedIndexes();
+    foreach(QModelIndex index, selected_row) {
+        table_model_dataset_attribute_setup->removeRow(index.row());
+    }
+}
+
+void ControUnitInstanceEditor::addNewDriverDescription(const QString& driver_name,
+                                                       const QString& driver_version,
+                                                       const QString& driver_init_parameter) {
+
+    QStandardItem *item = NULL;
+    QList<QStandardItem*> row_item;
+    row_item.append(item = new QStandardItem(driver_name));
+    item->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled);
+
+    row_item.append(item = new QStandardItem(driver_version));
+    item->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled);
+
+    row_item.append(item = new QStandardItem(driver_init_parameter));
+    item->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled);
+    table_model_driver_spec->appendRow(row_item);
+    ui->pushButtonEditDriverDescription->setEnabled(false);
+}
+
+void ControUnitInstanceEditor::updateDriverDescription(int current_row,
+                                                       const QString& driver_name,
+                                                       const QString& driver_version,
+                                                       const QString& driver_init_parameter) {
+    table_model_driver_spec->setItem(current_row, 0, new QStandardItem(driver_name));
+    table_model_driver_spec->setItem(current_row, 1, new QStandardItem(driver_version));
+    table_model_driver_spec->setItem(current_row, 2, new QStandardItem(driver_init_parameter));
+    ui->pushButtonEditDriverDescription->setEnabled(false);
+}
+
+void ControUnitInstanceEditor::addAttributeDescription(const QString& attribute_name,
+                                                       const QString& attribute_default_value,
+                                                       const QString& attribute_default_max_value,
+                                                       const QString& attribute_default_min_value) {
+    QStandardItem *item = NULL;
+    QList<QStandardItem*> row_item;
+    row_item.append(item = new QStandardItem(attribute_name));
+    item->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled);
+
+    row_item.append(item = new QStandardItem(attribute_default_value));
+    item->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled);
+
+    row_item.append(item = new QStandardItem(attribute_default_max_value));
+    item->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled);
+
+    row_item.append(item = new QStandardItem(attribute_default_min_value));
+    item->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled);
+    table_model_dataset_attribute_setup->appendRow(row_item);
+    ui->pushButtonEditAttribute->setEnabled(false);
+}
+
+void ControUnitInstanceEditor::updateAttributeDescription(int current_row,
+                                                          const QString& attribute_name,
+                                                          const QString& attribute_default_value,
+                                                          const QString& attribute_default_max_value,
+                                                          const QString& attribute_default_min_value) {
+    table_model_dataset_attribute_setup->setItem(current_row, 0, new QStandardItem(attribute_name));
+    table_model_dataset_attribute_setup->setItem(current_row, 1, new QStandardItem(attribute_default_value));
+    table_model_dataset_attribute_setup->setItem(current_row, 2, new QStandardItem(attribute_default_max_value));
+    table_model_dataset_attribute_setup->setItem(current_row, 3, new QStandardItem(attribute_default_min_value));
+    ui->pushButtonEditAttribute->setEnabled(false);
+}
+
+void ControUnitInstanceEditor::tableDriverDescriptionCurrentChanged(const QModelIndex &current,
+                                                                    const QModelIndex &previous) {
+    (void)current;
+    (void)previous;
+    //enable the edit button only if is selected one element on table
+    bool enable = false;
+    if(QObject::sender() == ui->tableViewDriverSpecification) {
+        enable = ui->tableViewDriverSpecification->selectionModel()->selectedRows().size()==1;
+        ui->pushButtonEditDriverDescription->setEnabled(enable);
+    }else{
+        enable = ui->tableViewDatasetAttributes->selectionModel()->selectedRows().size()==1;
+        ui->pushButtonEditAttribute->setEnabled(enable);
+    }
+    qDebug() << "tableDriverDescriptionCurrentChanged, edit enable state:" <<enable;
+}
+
+void ControUnitInstanceEditor::tableDriverDescriptionSelectionChanged(const QItemSelection& selected,
+                                                                      const QItemSelection& unselected) {
+    (void)selected;
+    (void)unselected;
+    //enable the edit button only if is selected one element on table
+    bool enable = false;
+    if(QObject::sender() == ui->tableViewDriverSpecification) {
+        enable = ui->tableViewDriverSpecification->selectionModel()->selectedRows().size()==1;
+        ui->pushButtonEditDriverDescription->setEnabled(enable);
+    }else{
+        enable = ui->tableViewDatasetAttributes->selectionModel()->selectedRows().size()==1;
+        ui->pushButtonEditAttribute->setEnabled(enable);
+    }
+    qDebug() << "tableDriverDescriptionSelectionChanged, edit enable state:" << enable;
+}
+
diff --git a/ccs/node/control_unit/ControUnitInstanceEditor.h b/ccs/node/control_unit/ControUnitInstanceEditor.h
index e36bd5384d0d1ba0107d263f297bb8b8310f42b8..a7b39c375df66e3b3c8d6707710e28928faed488 100644
--- a/ccs/node/control_unit/ControUnitInstanceEditor.h
+++ b/ccs/node/control_unit/ControUnitInstanceEditor.h
@@ -4,6 +4,8 @@
 #include "../../presenter/PresenterWidget.h"
 
 #include <QWidget>
+#include <QItemSelection>
+#include <QModelIndexList>
 #include <QStandardItemModel>
 
 namespace Ui {
@@ -14,9 +16,9 @@ class ControUnitInstanceEditor :
         public PresenterWidget
 {
     Q_OBJECT
-    QString unit_server_uid;
-    QString control_unit_type;
-    QString control_unit_uid;
+   // QString unit_server_uid;
+   // QString control_unit_type;
+   // QString control_unit_uid;
 
     bool is_in_editing;
 
@@ -24,24 +26,65 @@ class ControUnitInstanceEditor :
     QStandardItemModel *table_model_driver_spec;
     QStandardItemModel *table_model_dataset_attribute_setup;
 public:
-    //!Create instance without specifing the type
-    explicit ControUnitInstanceEditor(const QString& unit_server_uid);
     //!Create instance with unit server and cu type
     explicit ControUnitInstanceEditor(const QString& unit_server_uid,
                                       const QString& control_unit_type);
     //!edit the control unit
     explicit ControUnitInstanceEditor(const QString& unit_server_uid,
-                                      const QString& control_unit_type,
-                                      const QString& control_unit_uid);
+                                      const QString &control_unit_uid,
+                                      bool edit_instance);
     ~ControUnitInstanceEditor();
 
+    //read the ui and preapre the api proxy with the value
+    chaos::metadata_service_client::api_proxy::control_unit::SetInstanceDescription *prepareSetInstanceApi();
+
+    void fillUIFromInstanceInfo(QSharedPointer<chaos::common::data::CDataWrapper> api_result);
 protected:
     void initUI();
     bool canClose();
     void onApiDone(QString tag,
                    QSharedPointer<chaos::common::data::CDataWrapper> api_result);
 
+private slots:
+    void on_pushButtonSaveInstance_clicked();
+
+    void on_pushButtonAddDriverDescription_clicked();
+
+    void on_pushButtonEditDriverDescription_clicked();
+
+    void on_pushButtonDeleteDriverDescription_clicked();
+
+    void tableDriverDescriptionCurrentChanged(const QModelIndex &current,
+                                              const QModelIndex &previous);
+    void tableDriverDescriptionSelectionChanged(const QItemSelection& selected,
+                                                const QItemSelection& unselected);
+    void on_pushButtonAddAttribute_clicked();
+
+    void on_pushButtonEditAttribute_clicked();
+
+    void on_pushButtonRemoveAttribute_clicked();
+
+    void addNewDriverDescription(const QString& driver_name,
+                                 const QString& driver_version,
+                                 const QString& driver_init_parameter);
+    void updateDriverDescription(int current_row,
+                                 const QString& driver_name,
+                                 const QString& driver_version,
+                                 const QString& driver_init_parameter);
+
+    void addAttributeDescription(const QString& attribute_name,
+                                 const QString& attribute_default_value,
+                                 const QString& attribute_default_max_value,
+                                 const QString& attribute_default_min_value);
+    void updateAttributeDescription(int current_row,
+                                    const QString& attribute_name,
+                                    const QString& attribute_default_value,
+                                    const QString& attribute_default_max_value,
+                                    const QString& attribute_default_min_value);
 private:
+    //set instance api proxy
+    chaos::metadata_service_client::api_proxy::control_unit::SetInstanceDescription *set_inst_desc_proxy;
+    chaos::metadata_service_client::api_proxy::control_unit::GetInstance *get_instance_api_proxy;
     Ui::ControUnitInstanceEditor *ui;
 };
 
diff --git a/ccs/node/control_unit/ControUnitInstanceEditor.ui b/ccs/node/control_unit/ControUnitInstanceEditor.ui
index 9d51c2f013fe510e0f868c984974cd49617588d5..d73bf41a3cb7b56c12d0d4fcff6a5d608a30ec9f 100644
--- a/ccs/node/control_unit/ControUnitInstanceEditor.ui
+++ b/ccs/node/control_unit/ControUnitInstanceEditor.ui
@@ -76,7 +76,7 @@
         <item row="0" column="2" alignment="Qt::AlignLeft|Qt::AlignVCenter">
          <widget class="QLabel" name="labelUnitServer">
           <property name="sizePolicy">
-           <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
+           <sizepolicy hsizetype="Expanding" vsizetype="Minimum">
             <horstretch>0</horstretch>
             <verstretch>0</verstretch>
            </sizepolicy>
@@ -101,7 +101,7 @@
            </font>
           </property>
           <property name="text">
-           <string>unit server that host the cu instance</string>
+           <string/>
           </property>
          </widget>
         </item>
@@ -132,7 +132,7 @@
         <item row="1" column="2">
          <widget class="QLabel" name="labelControlUnitType">
           <property name="sizePolicy">
-           <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
+           <sizepolicy hsizetype="Expanding" vsizetype="Minimum">
             <horstretch>0</horstretch>
             <verstretch>0</verstretch>
            </sizepolicy>
@@ -146,7 +146,7 @@
           <property name="maximumSize">
            <size>
             <width>203</width>
-            <height>16777215</height>
+            <height>20</height>
            </size>
           </property>
           <property name="font">
@@ -157,12 +157,12 @@
            </font>
           </property>
           <property name="text">
-           <string>unit control unit type</string>
+           <string/>
           </property>
          </widget>
         </item>
         <item row="1" column="3">
-         <widget class="QPushButton" name="pushButton">
+         <widget class="QPushButton" name="pushButtonChooseControlUnitType">
           <property name="sizePolicy">
            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
             <horstretch>0</horstretch>
@@ -180,7 +180,7 @@
          </widget>
         </item>
         <item row="2" column="3">
-         <widget class="QPushButton" name="pushButton_4">
+         <widget class="QPushButton" name="pushButtonCheckUniqueID">
           <property name="font">
            <font>
             <pointsize>11</pointsize>
@@ -232,7 +232,7 @@
          <property name="frameShadow">
           <enum>QFrame::Raised</enum>
          </property>
-         <layout class="QVBoxLayout" name="verticalLayout" stretch="0,5">
+         <layout class="QVBoxLayout" name="verticalLayout" stretch="0,0,5">
           <property name="spacing">
            <number>4</number>
           </property>
@@ -248,6 +248,18 @@
           <property name="bottomMargin">
            <number>2</number>
           </property>
+          <item>
+           <widget class="QCheckBox" name="checkBoxAutoLoad">
+            <property name="font">
+             <font>
+              <pointsize>11</pointsize>
+             </font>
+            </property>
+            <property name="text">
+             <string>autoload</string>
+            </property>
+           </widget>
+          </item>
           <item>
            <layout class="QHBoxLayout" name="horizontalLayout_2">
             <property name="sizeConstraint">
@@ -279,6 +291,11 @@
                 <height>100</height>
                </size>
               </property>
+              <property name="font">
+               <font>
+                <pointsize>11</pointsize>
+               </font>
+              </property>
               <property name="placeholderText">
                <string>Initialization parameter</string>
               </property>
@@ -305,6 +322,17 @@
             </item>
             <item>
              <widget class="QTableView" name="tableViewDriverSpecification">
+              <property name="font">
+               <font>
+                <pointsize>11</pointsize>
+               </font>
+              </property>
+              <property name="editTriggers">
+               <set>QAbstractItemView::NoEditTriggers</set>
+              </property>
+              <property name="selectionMode">
+               <enum>QAbstractItemView::MultiSelection</enum>
+              </property>
               <attribute name="horizontalHeaderDefaultSectionSize">
                <number>20</number>
               </attribute>
@@ -313,7 +341,7 @@
             <item>
              <layout class="QHBoxLayout" name="horizontalLayoutDriverControl">
               <property name="spacing">
-               <number>2</number>
+               <number>4</number>
               </property>
               <property name="leftMargin">
                <number>2</number>
@@ -341,14 +369,39 @@
                </spacer>
               </item>
               <item>
-               <widget class="QPushButton" name="pushButton_3">
+               <widget class="QPushButton" name="pushButtonDeleteDriverDescription">
+                <property name="font">
+                 <font>
+                  <pointsize>11</pointsize>
+                 </font>
+                </property>
                 <property name="text">
                  <string>remove</string>
                 </property>
                </widget>
               </item>
               <item>
-               <widget class="QPushButton" name="pushButton_2">
+               <widget class="QPushButton" name="pushButtonEditDriverDescription">
+                <property name="enabled">
+                 <bool>false</bool>
+                </property>
+                <property name="font">
+                 <font>
+                  <pointsize>11</pointsize>
+                 </font>
+                </property>
+                <property name="text">
+                 <string>Edit</string>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QPushButton" name="pushButtonAddDriverDescription">
+                <property name="font">
+                 <font>
+                  <pointsize>11</pointsize>
+                 </font>
+                </property>
                 <property name="text">
                  <string>add</string>
                 </property>
@@ -405,7 +458,13 @@
            <number>2</number>
           </property>
           <item>
-           <widget class="QTableView" name="tableViewDatasetAttributes"/>
+           <widget class="QTableView" name="tableViewDatasetAttributes">
+            <property name="font">
+             <font>
+              <pointsize>11</pointsize>
+             </font>
+            </property>
+           </widget>
           </item>
           <item>
            <layout class="QHBoxLayout" name="horizontalLayout_5">
@@ -426,26 +485,38 @@
              </spacer>
             </item>
             <item>
-             <widget class="QPushButton" name="pushButton_8">
+             <widget class="QPushButton" name="pushButtonRemoveAttribute">
+              <property name="font">
+               <font>
+                <pointsize>11</pointsize>
+               </font>
+              </property>
+              <property name="text">
+               <string>remove</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QPushButton" name="pushButtonEditAttribute">
               <property name="font">
                <font>
                 <pointsize>11</pointsize>
                </font>
               </property>
               <property name="text">
-               <string>PushButton</string>
+               <string>edit</string>
               </property>
              </widget>
             </item>
             <item>
-             <widget class="QPushButton" name="pushButton_7">
+             <widget class="QPushButton" name="pushButtonAddAttribute">
               <property name="font">
                <font>
                 <pointsize>11</pointsize>
                </font>
               </property>
               <property name="text">
-               <string>PushButton</string>
+               <string>add</string>
               </property>
              </widget>
             </item>
@@ -468,7 +539,7 @@
      </property>
      <layout class="QHBoxLayout" name="horizontalLayout_4">
       <property name="spacing">
-       <number>2</number>
+       <number>4</number>
       </property>
       <property name="leftMargin">
        <number>2</number>
@@ -496,14 +567,12 @@
        </spacer>
       </item>
       <item>
-       <widget class="QPushButton" name="pushButton_6">
-        <property name="text">
-         <string>cancel</string>
+       <widget class="QPushButton" name="pushButtonSaveInstance">
+        <property name="font">
+         <font>
+          <pointsize>11</pointsize>
+         </font>
         </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QPushButton" name="pushButton_5">
         <property name="text">
          <string>save</string>
         </property>
diff --git a/ccs/node/control_unit/DriverDescriptionInputDialog.cpp b/ccs/node/control_unit/DriverDescriptionInputDialog.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..47a52e69542b08be9ddda09d64ab843c575f43de
--- /dev/null
+++ b/ccs/node/control_unit/DriverDescriptionInputDialog.cpp
@@ -0,0 +1,59 @@
+#include "DriverDescriptionInputDialog.h"
+#include "ui_DriverDescriptionInputDialog.h"
+
+DriverDescriptionInputDialog::DriverDescriptionInputDialog(QWidget *_parent) :
+    QDialog(_parent),
+    current_row(-1),
+    driver_name(QString("")),
+    driver_version(QString("")),
+    driver_init_parameter(QString("")),
+    ui(new Ui::DriverDescriptionInputDialog)
+{
+    ui->setupUi(this);
+    connect(ui->buttonBox, SIGNAL(accepted()),
+            this, SLOT(endWork()));
+    setModal(true);
+}
+
+DriverDescriptionInputDialog::DriverDescriptionInputDialog(int _current_row,
+                                                           const QString& _driver_name,
+                                                           const QString& _driver_version,
+                                                           const QString& _driver_init_parameter,
+                                                           QWidget *_parent):
+    QDialog(_parent),
+    current_row(_current_row),
+    driver_name(_driver_name),
+    driver_version(_driver_version),
+    driver_init_parameter(_driver_init_parameter),
+    ui(new Ui::DriverDescriptionInputDialog)
+{
+    ui->setupUi(this);
+    connect(ui->buttonBox, SIGNAL(accepted()),
+            this, SLOT(endWork()));
+    setModal(true);
+
+    //set the value for the editing
+    ui->lineEditName->setText(driver_name);
+    ui->lineEditVersion->setText(driver_version);
+    ui->textEditInitParameter->setText(driver_init_parameter);
+}
+
+DriverDescriptionInputDialog::~DriverDescriptionInputDialog()
+{
+    delete ui;
+}
+
+void DriverDescriptionInputDialog::endWork() {
+    if(current_row > -1) {
+        //we are updating a driver description so emit the rigth signal
+        emit updateDriverDescription(current_row,
+                                     ui->lineEditName->text(),
+                                     ui->lineEditVersion->text(),
+                                     ui->textEditInitParameter->toPlainText());
+    } else {
+        //emit the value of the driver because user has accepted
+        emit newDriverDescription(ui->lineEditName->text(),
+                                  ui->lineEditVersion->text(),
+                                  ui->textEditInitParameter->toPlainText());
+    }
+}
diff --git a/ccs/node/control_unit/DriverDescriptionInputDialog.h b/ccs/node/control_unit/DriverDescriptionInputDialog.h
new file mode 100644
index 0000000000000000000000000000000000000000..706a4e3d7f195dd98947b13176b2109ce0649d2b
--- /dev/null
+++ b/ccs/node/control_unit/DriverDescriptionInputDialog.h
@@ -0,0 +1,42 @@
+#ifndef DRIVERDESCRIPTIONINPUTDIALOG_H
+#define DRIVERDESCRIPTIONINPUTDIALOG_H
+
+#include <QDialog>
+#include <QModelIndex>
+namespace Ui {
+class DriverDescriptionInputDialog;
+}
+
+class DriverDescriptionInputDialog : public QDialog
+{
+    Q_OBJECT
+    int current_row;
+    const QString& driver_name;
+    const QString& driver_version;
+    const QString& driver_init_parameter;
+public:
+    DriverDescriptionInputDialog(QWidget *parent = 0);
+    DriverDescriptionInputDialog(int current_row,
+                                 const QString& _driver_name,
+                                 const QString& _driver_version,
+                                 const QString& _driver_init_parameter,
+                                 QWidget *parent = 0);
+    ~DriverDescriptionInputDialog();
+
+private slots:
+    void endWork();
+
+signals:
+    void newDriverDescription(const QString& driver_name,
+                              const QString& driver_version,
+                              const QString& driver_init_parameter);
+    void updateDriverDescription(int current_row,
+                                 const QString& driver_name,
+                                 const QString& driver_version,
+                                 const QString& driver_init_parameter);
+
+private:
+    Ui::DriverDescriptionInputDialog *ui;
+};
+
+#endif // DRIVERDESCRIPTIONINPUTDIALOG_H
diff --git a/ccs/node/control_unit/DriverDescriptionInputDialog.ui b/ccs/node/control_unit/DriverDescriptionInputDialog.ui
new file mode 100644
index 0000000000000000000000000000000000000000..eafcfccd0b7eb4966a9f14d0b8ab9a4eabb42aaa
--- /dev/null
+++ b/ccs/node/control_unit/DriverDescriptionInputDialog.ui
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <author>Claudio Bisegni</author>
+ <class>DriverDescriptionInputDialog</class>
+ <widget class="QDialog" name="DriverDescriptionInputDialog">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>431</width>
+    <height>257</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Dialog</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <property name="spacing">
+    <number>4</number>
+   </property>
+   <property name="leftMargin">
+    <number>10</number>
+   </property>
+   <property name="topMargin">
+    <number>10</number>
+   </property>
+   <property name="rightMargin">
+    <number>10</number>
+   </property>
+   <property name="bottomMargin">
+    <number>10</number>
+   </property>
+   <item>
+    <layout class="QGridLayout" name="gridLayout">
+     <item row="1" column="1">
+      <widget class="QLineEdit" name="lineEditVersion">
+       <property name="placeholderText">
+        <string>driver version</string>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="0" alignment="Qt::AlignRight">
+      <widget class="QLabel" name="label">
+       <property name="text">
+        <string>Class Name</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="0" alignment="Qt::AlignRight">
+      <widget class="QLabel" name="label_2">
+       <property name="text">
+        <string>Version:</string>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="1">
+      <widget class="QLineEdit" name="lineEditName">
+       <property name="placeholderText">
+        <string>driver class</string>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="0" alignment="Qt::AlignRight|Qt::AlignTop">
+      <widget class="QLabel" name="label_3">
+       <property name="text">
+        <string>Init Paramter:</string>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="1">
+      <widget class="QTextEdit" name="textEditInitParameter">
+       <property name="placeholderText">
+        <string>driver initialization parameter</string>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <widget class="QDialogButtonBox" name="buttonBox">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="standardButtons">
+      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <tabstops>
+  <tabstop>lineEditName</tabstop>
+  <tabstop>lineEditVersion</tabstop>
+  <tabstop>textEditInitParameter</tabstop>
+ </tabstops>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>accepted()</signal>
+   <receiver>DriverDescriptionInputDialog</receiver>
+   <slot>accept()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>248</x>
+     <y>254</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>157</x>
+     <y>256</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>rejected()</signal>
+   <receiver>DriverDescriptionInputDialog</receiver>
+   <slot>reject()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>290</x>
+     <y>243</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>286</x>
+     <y>256</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>
diff --git a/ccs/node/unit_server/Test.qml b/ccs/node/unit_server/Test.qml
deleted file mode 100644
index 12a3f7f1b7a43bbff1bbd3b9ebb2116280085311..0000000000000000000000000000000000000000
--- a/ccs/node/unit_server/Test.qml
+++ /dev/null
@@ -1,5 +0,0 @@
-import QtQuick 2.4
-
-TestForm {
-}
-
diff --git a/ccs/node/unit_server/TestForm.ui.qml b/ccs/node/unit_server/TestForm.ui.qml
deleted file mode 100644
index b14bbbce0152a728acbba40a236784be9d6e0ca4..0000000000000000000000000000000000000000
--- a/ccs/node/unit_server/TestForm.ui.qml
+++ /dev/null
@@ -1,7 +0,0 @@
-import QtQuick 2.4
-
-Item {
-    width: 400
-    height: 400
-}
-
diff --git a/ccs/node/unit_server/UnitServerEditor.cpp b/ccs/node/unit_server/UnitServerEditor.cpp
index d1bea99849e7a522dea146a895dc694f1de64d0b..2975cd726af9f0b3578109c0ee70d097ce51cf34 100644
--- a/ccs/node/unit_server/UnitServerEditor.cpp
+++ b/ccs/node/unit_server/UnitServerEditor.cpp
@@ -15,6 +15,7 @@ using namespace chaos::common::data;
 using namespace chaos::metadata_service_client;
 using namespace chaos::metadata_service_client::api_proxy;
 using namespace chaos::metadata_service_client::api_proxy::node;
+using namespace chaos::metadata_service_client::api_proxy::control_unit;
 
 UnitServerEditor::UnitServerEditor(const QString &_node_unique_id) :
     PresenterWidget(NULL),
@@ -30,6 +31,10 @@ UnitServerEditor::UnitServerEditor(const QString &_node_unique_id) :
             this, SLOT(customMenuRequested(QPoint)));
 
     gnd_proxy = ChaosMetadataServiceClient::getInstance()->getApiProxy<GetNodeDescription>();
+    cu_si_proxy = ChaosMetadataServiceClient::getInstance()->getApiProxy<SearchInstancesByUS>();
+    cu_si_proxy->unit_server_uid = _node_unique_id.toStdString();
+
+    cu_di_proxy = ChaosMetadataServiceClient::getInstance()->getApiProxy<DeleteInstance>();
 }
 
 UnitServerEditor::~UnitServerEditor()
@@ -44,17 +49,19 @@ void UnitServerEditor::initUI() {
     //create cu type list model
     list_model_cu_type = new QStringListModel(this);
     ui->listViewCUType->setModel(list_model_cu_type);
+    ui->listViewCUType->setSelectionMode(QAbstractItemView::MultiSelection);
 
     //connect update button to interla slot
-    connect(ui->pushButtonUpdateUnitServerInfo, SIGNAL(clicked()), this, SLOT(updateUSInfo()));
+    connect(ui->pushButtonUpdateAllInfo, SIGNAL(clicked()), this, SLOT(updateAll()));
 
     // Create a new model
     // QStandardItemModel(int rows, int columns, QObject * parent = 0)
     table_model = new QStandardItemModel(this);
     table_model->setHorizontalHeaderItem(0, new QStandardItem(QString("UID")));
-    table_model->setHorizontalHeaderItem(1, new QStandardItem(QString("Type")));
+    table_model->setHorizontalHeaderItem(1, new QStandardItem(QString("Implementation")));
     table_model->setHorizontalHeaderItem(2, new QStandardItem(QString("State")));
     table_model->setHorizontalHeaderItem(3, new QStandardItem(QString("State SM")));
+
     // Attach the model to the view
     ui->tableView->setModel(table_model);
 
@@ -65,8 +72,21 @@ void UnitServerEditor::initUI() {
     ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
     ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
 
+    //set connection
+    connect(ui->listViewCUType->selectionModel(),
+            SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
+            this, SLOT(handleSelectionChanged(QItemSelection)));
+
+    connect(ui->tableView->selectionModel(),
+            SIGNAL(currentChanged(QModelIndex,QModelIndex)),
+            SLOT(tableCurrentChanged(QModelIndex,QModelIndex)));
+
+    connect(ui->tableView->selectionModel(),
+            SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
+            SLOT(tableSelectionChanged(QItemSelection,QItemSelection)));
+
     //load info
-    updateUSInfo();
+    updateAll();
 }
 
 bool UnitServerEditor::canClose() {
@@ -92,12 +112,40 @@ void UnitServerEditor::customMenuRequested(QPoint pos){
     menu->popup(ui->tableView->viewport()->mapToGlobal(pos));
 }
 
-void UnitServerEditor::updateUSInfo() {
-    ApiProxyResult api_result = gnd_proxy->execute(node_unique_id.toStdString());
-    submitApiResult(tr("gnd"),
-                    api_result);
+void UnitServerEditor::updateAll() {
+    submitApiResult(QString("gnd"),
+                    gnd_proxy->execute(node_unique_id.toStdString()));
+    submitApiResult(QString("cu_si"),
+                    cu_si_proxy->execute(0, 100));
+}
+
+void UnitServerEditor::handleSelectionChanged(const QItemSelection& selection) {
+    assert(cu_si_proxy);
+    //remove all previously impl from the api container
+    cu_si_proxy->control_unit_implementation.clear();
+
+    //add the new selected
+    foreach (QModelIndex element, selection.indexes()) {
+        QString impl = element.data().toString();
+        qDebug() << "Add " << impl << " as filter for instances search";
+        cu_si_proxy->control_unit_implementation.push_back(impl.toStdString());
+    }
+    //resend the search
+    submitApiResult(QString("cu_si"),
+                    cu_si_proxy->execute());
+}
+
+void UnitServerEditor::tableCurrentChanged(const QModelIndex &current,
+                                           const QModelIndex &previous) {
+    ui->pushButtonEditInstance->setEnabled(ui->tableView->selectionModel()->selectedRows().size() > 0);
 }
 
+void UnitServerEditor::tableSelectionChanged(const QItemSelection& selected,
+                                             const QItemSelection& unselected) {
+    ui->pushButtonEditInstance->setEnabled(ui->tableView->selectionModel()->selectedRows().size() > 0);
+}
+
+
 void UnitServerEditor::onApiDone(QString tag,
                                  QSharedPointer<chaos::common::data::CDataWrapper> api_result) {
     qDebug() << "Received asyncApiResult event of tag:" << tag;
@@ -136,6 +184,33 @@ void UnitServerEditor::onApiDone(QString tag,
             }
         }
         list_model_cu_type->setStringList(cy_type_list);
+    } else if(tag.compare("cu_si") == 0) {
+        //whe have the result for the control unit searchs
+        table_model->setRowCount(0);
+        if(!api_result.isNull() && api_result->hasKey("node_search_result_page")) {
+            CMultiTypeDataArrayWrapper *arr =  api_result->getVectorValue("node_search_result_page");
+            for(int i = 0;
+                i < arr->size();
+                i++) {
+                auto_ptr<CDataWrapper> found_node(arr->getCDataWrapperElementAtIndex(i));
+
+                QList<QStandardItem *> row_item;
+                QStandardItem *item = NULL;
+                row_item.append(item = new QStandardItem(QString::fromStdString(found_node->getStringValue(chaos::NodeDefinitionKey::NODE_UNIQUE_ID))));
+                item->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled);
+
+                row_item.append(item = new QStandardItem(QString::fromStdString(found_node->getStringValue("control_unit_implementation"))));
+                item->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled);
+
+                row_item.append(item = new QStandardItem(QString::fromStdString("---")));
+                item->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled);
+
+                row_item.append(item = new QStandardItem(QString::fromStdString("---")));
+                item->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled);
+
+                table_model->appendRow(row_item);
+            }
+        }
     }
 }
 
@@ -153,3 +228,34 @@ void UnitServerEditor::on_pushButtonCreateNewInstance_clicked()
     addWidgetToPresenter(new ControUnitInstanceEditor(node_unique_id,
                                                       selected_index.first().data().toString()));
 }
+
+void UnitServerEditor::on_pushButtonUpdateAllInfo_clicked()
+{
+    updateAll();
+}
+
+void UnitServerEditor::on_pushButtonRemoveInstance_clicked()
+{
+    assert(cu_di_proxy);
+    //add the new selected
+    foreach (QModelIndex element, ui->tableView->selectionModel()->selectedIndexes()) {
+        QString cu_inst_id = table_model->item(element.row(), 0)->text();
+        qDebug() << "Remove " << cu_inst_id << " instance";
+        submitApiResult(QString("cu_ri"),
+                        cu_di_proxy->execute(node_unique_id.toStdString(),
+                                             cu_inst_id.toStdString()));
+    }
+    //update the result
+    updateAll();
+}
+
+void UnitServerEditor::on_pushButtonEditInstance_clicked()
+{
+    foreach (QModelIndex element, ui->tableView->selectionModel()->selectedRows()) {
+        QString cu_inst_id = table_model->item(element.row(), 0)->text();
+        qDebug() << "Edit " << cu_inst_id << " instance";
+        addWidgetToPresenter(new ControUnitInstanceEditor(node_unique_id,
+                                                          cu_inst_id,
+                                                          true));
+    }
+}
diff --git a/ccs/node/unit_server/UnitServerEditor.h b/ccs/node/unit_server/UnitServerEditor.h
index 833ee9e4a39773ed664add4430600a1ad55e01ea..37275e791e11da181aa9157afaf39fc2746144b0 100644
--- a/ccs/node/unit_server/UnitServerEditor.h
+++ b/ccs/node/unit_server/UnitServerEditor.h
@@ -3,8 +3,10 @@
 
 #include "../../presenter/PresenterWidget.h"
 
+#include <QItemSelection>
 #include <QStringListModel>
 #include <QStandardItemModel>
+
 namespace Ui {
 class UnitServerEditor;
 }
@@ -18,7 +20,8 @@ class UnitServerEditor :
     QStringListModel *list_model_cu_type;
     //query proxy
     chaos::metadata_service_client::api_proxy::node::GetNodeDescription *gnd_proxy;
-
+    chaos::metadata_service_client::api_proxy::control_unit::SearchInstancesByUS *cu_si_proxy;
+    chaos::metadata_service_client::api_proxy::control_unit::DeleteInstance *cu_di_proxy;
 public:
     explicit UnitServerEditor(const QString& _node_unique_id);
     ~UnitServerEditor();
@@ -26,10 +29,22 @@ public:
 private slots:
     void customMenuRequested(QPoint pos);
 
-    void updateUSInfo();
+    void updateAll();
 
     void on_pushButtonCreateNewInstance_clicked();
 
+    void handleSelectionChanged(const QItemSelection& selection);
+
+    void on_pushButtonUpdateAllInfo_clicked();
+
+    void on_pushButtonRemoveInstance_clicked();
+
+    void on_pushButtonEditInstance_clicked();
+
+    void tableCurrentChanged(const QModelIndex &current,
+                             const QModelIndex &previous);
+    void tableSelectionChanged(const QItemSelection& selected,
+                               const QItemSelection& unselected);
 protected:
     void initUI();
     bool canClose();
diff --git a/ccs/node/unit_server/UnitServerEditor.ui b/ccs/node/unit_server/UnitServerEditor.ui
index a7d71b38f45fb81fbdc15a401143c3571028c1ae..eb5458e9104ba47e3449b4a66bdec224fa02b299 100644
--- a/ccs/node/unit_server/UnitServerEditor.ui
+++ b/ccs/node/unit_server/UnitServerEditor.ui
@@ -19,7 +19,7 @@
   <property name="windowTitle">
    <string>Form</string>
   </property>
-  <layout class="QVBoxLayout" name="verticalLayout" stretch="0,1">
+  <layout class="QVBoxLayout" name="verticalLayout" stretch="0,1,0">
    <property name="spacing">
     <number>2</number>
    </property>
@@ -45,9 +45,9 @@
        <number>2</number>
       </property>
       <item>
-       <layout class="QGridLayout" name="gridLayout" columnstretch="0,0,0" rowminimumheight="0,0,0" columnminimumwidth="0,0,0">
+       <layout class="QGridLayout" name="gridLayout" columnstretch="0,0" rowminimumheight="0,0,0" columnminimumwidth="0,0">
         <property name="spacing">
-         <number>-1</number>
+         <number>6</number>
         </property>
         <item row="1" column="0" alignment="Qt::AlignRight">
          <widget class="QLabel" name="label_2">
@@ -121,18 +121,6 @@
           </property>
          </widget>
         </item>
-        <item row="2" column="2">
-         <widget class="QPushButton" name="pushButtonUpdateUnitServerInfo">
-          <property name="font">
-           <font>
-            <pointsize>11</pointsize>
-           </font>
-          </property>
-          <property name="text">
-           <string>Update</string>
-          </property>
-         </widget>
-        </item>
         <item row="2" column="1">
          <widget class="QLabel" name="labelRegistrationTimestamp">
           <property name="font">
@@ -187,7 +175,19 @@
         </widget>
        </item>
        <item>
-        <widget class="QListView" name="listViewCUType"/>
+        <widget class="QListView" name="listViewCUType">
+         <property name="font">
+          <font>
+           <pointsize>11</pointsize>
+          </font>
+         </property>
+         <property name="editTriggers">
+          <set>QAbstractItemView::NoEditTriggers</set>
+         </property>
+         <property name="showDropIndicator" stdset="0">
+          <bool>false</bool>
+         </property>
+        </widget>
        </item>
        <item>
         <widget class="QFrame" name="frameCUTypeControl">
@@ -205,7 +205,7 @@
          </property>
          <layout class="QHBoxLayout" name="horizontalLayout_2">
           <property name="spacing">
-           <number>-1</number>
+           <number>6</number>
           </property>
           <property name="leftMargin">
            <number>2</number>
@@ -271,7 +271,19 @@
         </widget>
        </item>
        <item>
-        <widget class="QTableView" name="tableView"/>
+        <widget class="QTableView" name="tableView">
+         <property name="font">
+          <font>
+           <pointsize>11</pointsize>
+          </font>
+         </property>
+         <property name="selectionMode">
+          <enum>QAbstractItemView::MultiSelection</enum>
+         </property>
+         <attribute name="horizontalHeaderDefaultSectionSize">
+          <number>20</number>
+         </attribute>
+        </widget>
        </item>
        <item>
         <widget class="QFrame" name="frameCUInstanceControl">
@@ -303,6 +315,30 @@
           <property name="bottomMargin">
            <number>2</number>
           </property>
+          <item>
+           <widget class="QPushButton" name="pushButtonCUInstancePrevPage">
+            <property name="font">
+             <font>
+              <pointsize>11</pointsize>
+             </font>
+            </property>
+            <property name="text">
+             <string>&lt;&lt;</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QPushButton" name="pushButtonCUInstanceNextPage">
+            <property name="font">
+             <font>
+              <pointsize>11</pointsize>
+             </font>
+            </property>
+            <property name="text">
+             <string>&gt;&gt;</string>
+            </property>
+           </widget>
+          </item>
           <item>
            <spacer name="horizontalSpacer_3">
             <property name="orientation">
@@ -324,7 +360,22 @@
              </font>
             </property>
             <property name="text">
-             <string>remove instance</string>
+             <string>remove</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QPushButton" name="pushButtonEditInstance">
+            <property name="enabled">
+             <bool>false</bool>
+            </property>
+            <property name="font">
+             <font>
+              <pointsize>11</pointsize>
+             </font>
+            </property>
+            <property name="text">
+             <string>edit</string>
             </property>
            </widget>
           </item>
@@ -336,7 +387,7 @@
              </font>
             </property>
             <property name="text">
-             <string>add instance</string>
+             <string>add</string>
             </property>
            </widget>
           </item>
@@ -363,6 +414,35 @@
      </widget>
     </widget>
    </item>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout_4">
+     <item>
+      <spacer name="horizontalSpacer_5">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>40</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+     <item>
+      <widget class="QPushButton" name="pushButtonUpdateAllInfo">
+       <property name="font">
+        <font>
+         <pointsize>11</pointsize>
+        </font>
+       </property>
+       <property name="text">
+        <string>Update All</string>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
   </layout>
  </widget>
  <resources/>
diff --git a/ccs/presenter/PresenterWidget.cpp b/ccs/presenter/PresenterWidget.cpp
index 8e6cdad2c65562611ba6d7bffd8d1e724fbffbf0..b67a1a696b62cba3f794eeb2eeea7d205aec4481 100644
--- a/ccs/presenter/PresenterWidget.cpp
+++ b/ccs/presenter/PresenterWidget.cpp
@@ -31,6 +31,11 @@ void PresenterWidget::setTabTitle(const QString& title) {
     editor_subwindow->setWindowTitle(title);
 }
 
+void PresenterWidget::closeTab() {
+    if(!editor_subwindow) return;
+    editor_subwindow->close();
+}
+
 void PresenterWidget::closeEvent(QCloseEvent *event) {
     if(canClose()){
         event->accept();
@@ -43,7 +48,7 @@ void PresenterWidget::addWidgetToPresenter(PresenterWidget *p_w) {
 }
 
 void PresenterWidget::submitApiResult(const QString& api_tag,
-                                      ApiProxyResult& api_result) {
+                                      ApiProxyResult api_result) {
     api_processor.submitApiResult(api_tag,
                                   api_result,
                                   this,
diff --git a/ccs/presenter/PresenterWidget.h b/ccs/presenter/PresenterWidget.h
index 5e24e4905b1bd005fb1cde642c2063988b6f4ce6..fa88d2d8a0a8c8e6b51bf830d713012c5ea887dd 100644
--- a/ccs/presenter/PresenterWidget.h
+++ b/ccs/presenter/PresenterWidget.h
@@ -27,11 +27,6 @@ public:
     virtual bool canClose() = 0;
     virtual void initUI() = 0;
 
-protected:
-    //!submit api result for async wait termination
-    void submitApiResult(const QString& api_tag,
-                         chaos::metadata_service_client::api_proxy::ApiProxyResult& api_result);
-
 private:
     void closeEvent(QCloseEvent *event) Q_DECL_OVERRIDE;
     void setSubWindow(QMdiSubWindow *_editor_subwindow);
@@ -49,8 +44,15 @@ private slots:
 protected:
     ApiAsyncProcessor api_processor;
     void setTabTitle(const QString& title);
+
+    void closeTab();
+
     void addWidgetToPresenter(PresenterWidget *p_w);
 
+    //!submit api result for async wait termination
+    void submitApiResult(const QString& api_tag,
+                         chaos::metadata_service_client::api_proxy::ApiProxyResult api_result);
+
     //!Api has ben called successfully
     virtual void onApiDone(QString tag,
                            QSharedPointer<chaos::common::data::CDataWrapper> api_result);
diff --git a/ccs/search/SearchNode.cpp b/ccs/search/SearchNode.cpp
index c12f8e6ba0dff9c24b35ef7c6391a97e8192586c..4b84cfb0a6ca11b995aae0d4da06c3406334e2cd 100644
--- a/ccs/search/SearchNode.cpp
+++ b/ccs/search/SearchNode.cpp
@@ -25,5 +25,5 @@ void SearchNode::on_pushButtonStartSearch_clicked()
 {
     int idx =  ui->comboBoxSearchType->currentIndex();
     qDebug() << "Start search with type:" << idx << " and search criteria:" << ui->lineEditSearchCriteria->text();
-    presenter->showCommandPresenter(new SearchNodeResult(idx, ui->lineEditSearchCriteria->text()));
+    presenter->showCommandPresenter(new SearchNodeResult());
 }
diff --git a/ccs/search/SearchNodeResult.cpp b/ccs/search/SearchNodeResult.cpp
index 56129d512b9028a6b8c1a774a324748aaf8b4798..dd9362b241431873846348a6e51c7e2018396530 100644
--- a/ccs/search/SearchNodeResult.cpp
+++ b/ccs/search/SearchNodeResult.cpp
@@ -10,19 +10,13 @@ using namespace chaos::metadata_service_client;
 using namespace chaos::metadata_service_client::api_proxy;
 using namespace chaos::metadata_service_client::api_proxy::node;
 
-SearchNodeResult::SearchNodeResult(int _search_type,
-                                   const QString &_search_criteria) :
+SearchNodeResult::SearchNodeResult() :
     PresenterWidget(NULL),
-    search_type(_search_type),
-    search_criteria(_search_criteria),
     current_page(0),
     current_page_length(30),
     ui(new Ui::SearchNodeResult)
 {
     ui->setupUi(this);
-
-    //fetch the api porxy
-    ns_proxy = ChaosMetadataServiceClient::getInstance()->getApiProxy<NodeSearch>();
 }
 
 SearchNodeResult::~SearchNodeResult()
@@ -30,32 +24,19 @@ SearchNodeResult::~SearchNodeResult()
     delete ui;
 }
 
-void SearchNodeResult::getSearchTypeAsString(QString& type_description) {
-    switch (search_type) {
-    case 0:
-        type_description = "All type";
-        break;
-    case 1:
-        type_description = "Unit server";
-        break;
-    case 2:
-        type_description = "Control unit";
-        break;
-    default:
-        break;
-    }
-}
-
 bool SearchNodeResult::canClose() {
     return true;
 }
 
 void SearchNodeResult::initUI() {
     setTabTitle("Search Result");
-    QString search_type_desc;
-    getSearchTypeAsString(search_type_desc);
-    ui->labelType->setText(search_type_desc);
-    ui->labelCriteria->setText(search_criteria);
+
+    //fetch the api porxy
+    ns_proxy = ChaosMetadataServiceClient::getInstance()->getApiProxy<NodeSearch>();
+
+    QStringList search_types;
+    search_types << "All types" << "Unit server" << "Control unit";
+    ui->comboBoxSearchType->addItems(search_types);
 
     // Create a new model
     // QStandardItemModel(int rows, int columns, QObject * parent = 0)
@@ -72,16 +53,6 @@ void SearchNodeResult::initUI() {
     //finisch to configure table
     ui->tableViewResult->setEditTriggers(QAbstractItemView::NoEditTriggers);
     ui->tableViewResult->setSelectionBehavior(QAbstractItemView::SelectRows);
-
-    //start the query
-    ApiProxyResult api_result = ns_proxy->execute(search_criteria.toStdString(),
-                                                  search_type,
-                                                  current_page*current_page_length,
-                                                  current_page_length);
-
-    //submit api
-    submitApiResult(QString::fromUtf8("search_result"),
-                    api_result);
 }
 
 void SearchNodeResult::onApiDone(QString tag,
@@ -89,10 +60,9 @@ void SearchNodeResult::onApiDone(QString tag,
     qDebug() << "Received asyncApiResult event of tag:" << tag;
 
     if(tag.compare(tr("search_result"))==0) {
-        setEnabled(true);
 
         //clear the model
-        table_model->clear();
+        table_model->setRowCount(0);
         if(api_result->hasKey("node_search_result_page")) {
             //we have result
             CMultiTypeDataArrayWrapper *arr =  api_result->getVectorValue("node_search_result_page");
@@ -133,10 +103,10 @@ void SearchNodeResult::on_pushButtonOpenNodeInEditor_clicked()
     foreach (QModelIndex index, indexes) {
         QStandardItem *node_uid = table_model->item(index.row(), 0);
         QStandardItem *node_type = table_model->item(index.row(), 1);
-       if(node_type->text().compare(chaos::NodeType::NODE_TYPE_UNIT_SERVER) == 0) {
-           qDebug() << "Open unit server editor for" << node_uid->text();
-           addWidgetToPresenter(new UnitServerEditor(node_uid->text()));
-       }
+        if(node_type->text().compare(chaos::NodeType::NODE_TYPE_UNIT_SERVER) == 0) {
+            qDebug() << "Open unit server editor for" << node_uid->text();
+            addWidgetToPresenter(new UnitServerEditor(node_uid->text()));
+        }
     }
 }
 
@@ -145,3 +115,15 @@ void SearchNodeResult::on_tableViewResult_clicked(const QModelIndex &index)
     QModelIndexList indexes = ui->tableViewResult->selectionModel()->selectedIndexes();
     ui->pushButtonOpenNodeInEditor->setEnabled(indexes.size()>0);
 }
+
+void SearchNodeResult::on_pushButtonStartSearch_clicked()
+{
+    //submit api
+    submitApiResult(QString("search_result"),
+                    //start the query
+                    ns_proxy->execute(ui->lineEditSearchCriteria->text().toStdString(),
+                                      ui->comboBoxSearchType->currentIndex(),
+                                      current_page*current_page_length,
+                                      current_page_length)
+                    );
+}
diff --git a/ccs/search/SearchNodeResult.h b/ccs/search/SearchNodeResult.h
index 1c1a5251f1c6a8ed91e4e7e457f65c72ff565a52..8b45ef68d30f1bd1bfcae2ba3ebfcb74a1eb5691 100644
--- a/ccs/search/SearchNodeResult.h
+++ b/ccs/search/SearchNodeResult.h
@@ -16,9 +16,6 @@ public PresenterWidget
 {
     Q_OBJECT
     //! search property
-    int search_type;
-    QString search_criteria;
-
     int current_page;
     int current_page_length;
 
@@ -28,12 +25,11 @@ public PresenterWidget
     void onApiDone(QString tag,
                         QSharedPointer<chaos::common::data::CDataWrapper> api_result);
 protected:
-    void getSearchTypeAsString(QString& type_description);
     void initUI();
     bool canClose();
 
 public:
-    explicit SearchNodeResult(int _search_type, const QString& _search_criteria);
+    explicit SearchNodeResult();
     ~SearchNodeResult();
 
 signals:
@@ -47,6 +43,7 @@ private slots:
 
     void on_tableViewResult_clicked(const QModelIndex &index);
 
+    void on_pushButtonStartSearch_clicked();
 
 private:
     Ui::SearchNodeResult *ui;
diff --git a/ccs/search/searchnoderesult.ui b/ccs/search/searchnoderesult.ui
index 1c51213bda9204819b3e9fab0ea8bafe61f9033f..6923813ad095680810979111e422806e0bca5436 100644
--- a/ccs/search/searchnoderesult.ui
+++ b/ccs/search/searchnoderesult.ui
@@ -30,8 +30,8 @@
     <layout class="QVBoxLayout" name="verticalLayout_2">
      <item>
       <layout class="QGridLayout" name="gridLayout">
-       <item row="1" column="1" alignment="Qt::AlignRight">
-        <widget class="QLabel" name="label_3">
+       <item row="0" column="1" alignment="Qt::AlignRight">
+        <widget class="QLabel" name="label_2">
          <property name="font">
           <font>
            <pointsize>11</pointsize>
@@ -42,10 +42,10 @@
          </property>
         </widget>
        </item>
-       <item row="0" column="3">
-        <widget class="QLabel" name="labelType">
+       <item row="1" column="1" alignment="Qt::AlignRight">
+        <widget class="QLabel" name="label">
          <property name="sizePolicy">
-          <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
+          <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
            <horstretch>0</horstretch>
            <verstretch>0</verstretch>
           </sizepolicy>
@@ -53,44 +53,38 @@
          <property name="font">
           <font>
            <pointsize>11</pointsize>
-           <weight>75</weight>
-           <bold>true</bold>
           </font>
          </property>
          <property name="text">
-          <string>type</string>
+          <string>Search type:</string>
          </property>
         </widget>
        </item>
-       <item row="0" column="1" alignment="Qt::AlignRight">
-        <widget class="QLabel" name="label">
-         <property name="sizePolicy">
-          <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-           <horstretch>0</horstretch>
-           <verstretch>0</verstretch>
-          </sizepolicy>
-         </property>
+       <item row="0" column="3">
+        <widget class="QLineEdit" name="lineEditSearchCriteria"/>
+       </item>
+       <item row="0" column="4">
+        <widget class="QPushButton" name="pushButtonStartSearch">
          <property name="font">
           <font>
            <pointsize>11</pointsize>
           </font>
          </property>
          <property name="text">
-          <string>Search type:</string>
+          <string>Search</string>
+         </property>
+         <property name="default">
+          <bool>true</bool>
          </property>
         </widget>
        </item>
        <item row="1" column="3">
-        <widget class="QLabel" name="labelCriteria">
-         <property name="font">
-          <font>
-           <pointsize>11</pointsize>
-           <weight>75</weight>
-           <bold>true</bold>
-          </font>
-         </property>
-         <property name="text">
-          <string>criteria</string>
+        <widget class="QComboBox" name="comboBoxSearchType">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
          </property>
         </widget>
        </item>
@@ -116,6 +110,9 @@
      </item>
      <item>
       <layout class="QHBoxLayout" name="horizontalLayout_2">
+       <property name="spacing">
+        <number>4</number>
+       </property>
        <item>
         <widget class="QPushButton" name="pushButtonPrevPage">
          <property name="enabled">
diff --git a/chaos/common/CMakeLists.txt b/chaos/common/CMakeLists.txt
index d728a6f9162db8fc3eee8c4349b10dbca1781131..e1cde88274994310e9d6c2c3a2b07c91504c49d8 100644
--- a/chaos/common/CMakeLists.txt
+++ b/chaos/common/CMakeLists.txt
@@ -6,22 +6,22 @@ SET(common_lib_src	${common_lib_src}	async_central/AsyncCentralManager.cpp async
 
 SET(common_lib_src  ${common_lib_src}	action/ActionExecutionSafetySystem.cpp action/EventAction.cpp action/ActionDescriptor.cpp action/DeclareAction.cpp action/DomainActions.cpp)
 
-SET(common_lib_src  ${common_lib_src}	bson/oid.cpp bson/bson_validate.cpp 
+SET(common_lib_src  ${common_lib_src}	bson/oid.cpp bson/bson_validate.cpp
 										bson/base/parse_number.cpp bson/base/string_data.cpp bson/base/stringutils.cpp bson/base/status.cpp bson/base/error_codes.cpp
 										bson/murmurhash3/MurmurHash3.cpp
 										bson/mutable/document.cpp bson/mutable/element.cpp
 										bson/platform/process_id.cpp bson/platform/random.cpp
-										bson/util/hex.cpp bson/util/base64.cpp bson/util/time_support.cpp bson/util/time_support.cpp 
+										bson/util/hex.cpp bson/util/base64.cpp bson/util/time_support.cpp bson/util/time_support.cpp
 										bson/util/assert_util.cpp bson/util/bson_extract.cpp bson/util/jsobj.cpp bson/util/json.cpp bson/util/md5.cpp bson/util/safe_num.cpp)
 
 SET(common_lib_src  ${common_lib_src}	configuration/GlobalConfiguration.cpp)
 
 SET(common_lib_src  ${common_lib_src}	data/CDataWrapper.cpp data/CUSchemaDB.cpp data/DatasetDB.cpp data/entity_db/EntityDB.cpp data/entity_db/sqlite_impl/sqlite3.c
-										data/entity_db/sqlite_impl/SQLiteEntityDB.cpp data/entity/Entity.cpp data/broker/DataBroker.cpp data/broker/publisher/PublisherDataService.cpp 
+										data/entity_db/sqlite_impl/SQLiteEntityDB.cpp data/entity/Entity.cpp data/broker/DataBroker.cpp data/broker/publisher/PublisherDataService.cpp
 										data/broker/reader/ReaderDataService.cpp data/cache/FastHash.cpp data/cache/DataCache.cpp data/cache/LFDataCache.cpp )
 
 
-SET(common_lib_src  ${common_lib_src}	data/cache/ChannelValueAccessor.cpp data/cache/KeyGroupCache.cpp 
+SET(common_lib_src  ${common_lib_src}	data/cache/ChannelValueAccessor.cpp data/cache/KeyGroupCache.cpp
 										data/cache/AttributeValue.cpp data/cache/AttributeCache.cpp data/cache/AbstractSharedDomainCache.cpp
 										data/cache/AttributeValueSharedCache.cpp)
 
@@ -32,14 +32,14 @@ SET(common_lib_src  ${common_lib_src}	dispatcher/DefaultEventDispatcher.cpp disp
 
 SET(common_lib_src  ${common_lib_src}	event/EventClient.cpp event/AsioImplEventClient event/AsioEventForwarder.cpp
 										event/EventServer.cpp event/AsioImplEventServer.cpp event/AsioEventHandler.cpp
-										event/evt_desc/EventDescriptor.cpp event/evt_desc/AlertEventDescriptor.cpp 
-										event/evt_desc/InstrumentEventDescriptor.cpp event/evt_desc/CommandEventDescriptor.cpp 
-										event/evt_desc/CustomEventDescriptor.cpp event/channel/EventChannel.cpp 
+										event/evt_desc/EventDescriptor.cpp event/evt_desc/AlertEventDescriptor.cpp
+										event/evt_desc/InstrumentEventDescriptor.cpp event/evt_desc/CommandEventDescriptor.cpp
+										event/evt_desc/CustomEventDescriptor.cpp event/channel/EventChannel.cpp
 										event/channel/AlertEventChannel.cpp event/channel/InstrumentEventChannel.cpp)
 
 SET(common_lib_src  ${common_lib_src}	direct_io/DirectIOClient.cpp direct_io/DirectIOClientConnection.cpp direct_io/DirectIOServer.cpp direct_io/DirectIOURLManagment.cpp
 										direct_io/DirectIOServerEndpoint.cpp direct_io/DirectIODispatcher.cpp direct_io/DirectIOPerformanceSession.cpp
-										direct_io/impl/ZMQDirectIOClient.cpp direct_io/impl/ZMQDirectIOServer.cpp 
+										direct_io/impl/ZMQDirectIOClient.cpp direct_io/impl/ZMQDirectIOServer.cpp
 										direct_io/impl/ZMQBaseClass.cpp direct_io/impl/ZMQDirectIOClientConnection.cpp
 										direct_io/channel/DirectIOVirtualChannel.cpp direct_io/channel/DirectIOVirtualClientChannel.cpp direct_io/channel/DirectIOVirtualServerChannel.cpp
 										direct_io/channel/DirectIODeviceClientChannel.cpp direct_io/channel/DirectIODeviceServerChannel.cpp
@@ -49,11 +49,13 @@ SET(common_lib_src  ${common_lib_src}	direct_io/DirectIOClient.cpp direct_io/Dir
 SET(common_lib_src  ${common_lib_src}	io/IODataDriver.cpp io/IOMemcachedIODriver.cpp io/IODirectIODriver.cpp io/QueryFuture.cpp)
 
 SET(common_lib_src  ${common_lib_src}	message/DeviceMessageChannel.cpp
-                                        message/MDSMessageChannel.cpp
-                                        message/MessageChannel.cpp
-                                        message/NodeMessageChannel.cpp
-                                        message/MultiAddressMessageChannel.cpp
-                                        message/PerformanceNodeChannel.cpp)
+                                      message/MDSMessageChannel.cpp
+                                      message/MessageChannel.cpp
+																			message/MessageRequestFuture.cpp
+                                      message/NodeMessageChannel.cpp
+                                      message/MultiAddressMessageChannel.cpp
+																			message/MultiAddressMessageRequestFuture.cpp
+                                      message/PerformanceNodeChannel.cpp)
 
 SET(common_lib_src  ${common_lib_src}	network/NetworkBroker.cpp network/PerformanceManagment.cpp network/URLServiceFeeder.cpp network/URL.cpp)
 
@@ -81,11 +83,11 @@ ENDIF()
 
 #SET_TARGET_PROPERTIES(chaos_common_static PROPERTIES OUTPUT_NAME chaos_common)
 
-#set_target_properties(chaos_common PROPERTIES VERSION 1.0.0 SOVERSION 1) 
+#set_target_properties(chaos_common PROPERTIES VERSION 1.0.0 SOVERSION 1)
+
+TARGET_LINK_LIBRARIES(chaos_common ${common_lib_library})
 
-TARGET_LINK_LIBRARIES(chaos_common ${common_lib_library}) 
 
-        
 FILE(GLOB files "*.h")
 INSTALL(FILES ${files} DESTINATION include/chaos/common)
 FILE(GLOB files "async_central/*.h")
@@ -118,8 +120,8 @@ FILE(GLOB files "data/entity/*.h")
 INSTALL(FILES ${files} DESTINATION include/chaos/common/data/entity)
 FILE(GLOB files "data/entity_db/*.h")
 INSTALL(FILES ${files} DESTINATION include/chaos/common/data/entity_db)
-FILE(GLOB files "fsm/*.h")
-INSTALL(FILES ${files} DESTINATION include/chaos/common/fsm)
+FILE(GLOB files "property/*.h")
+INSTALL(FILES ${files} DESTINATION include/chaos/common/property)
 FILE(GLOB files "dispatcher/*.h")
 INSTALL(FILES ${files} DESTINATION include/chaos/common/dispatcher)
 FILE(GLOB files "event/*.h")
diff --git a/chaos/common/action/ActionDescriptor.cpp b/chaos/common/action/ActionDescriptor.cpp
index 2a695e0dfe17930a2ee2121935a1bb8952647d0c..2e66b0ef90951edde494eee7c1a70b712c77e770 100644
--- a/chaos/common/action/ActionDescriptor.cpp
+++ b/chaos/common/action/ActionDescriptor.cpp
@@ -7,7 +7,7 @@
 //
 /*	
  *	ActionDescriptor.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio. 
  *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/action/ActionDescriptor.h b/chaos/common/action/ActionDescriptor.h
index 44d86b7b7d9bdc9015cc1c2aefd8e9a00ae7fa02..2ae84a5c180e7c03f2a33acecb7d62e889a8c706 100644
--- a/chaos/common/action/ActionDescriptor.h
+++ b/chaos/common/action/ActionDescriptor.h
@@ -1,6 +1,6 @@
 /*	
  *	ActionDescriptor.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/action/ChaosAction.h b/chaos/common/action/ChaosAction.h
index d5a07e1e4bdbceae83fbbfe2682a640b4b144a7e..0ab7126589df6ec8d731f8ba3d9bb1189da38101 100644
--- a/chaos/common/action/ChaosAction.h
+++ b/chaos/common/action/ChaosAction.h
@@ -1,6 +1,6 @@
 /*	
  *	ChaosAction.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio. *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
  *
diff --git a/chaos/common/action/DeclareAction.cpp b/chaos/common/action/DeclareAction.cpp
index 238748f404bfa35d9e673d12ac8c87928572bb60..a700d27f754a31da55a1675ed1f6a9e14ca33186 100644
--- a/chaos/common/action/DeclareAction.cpp
+++ b/chaos/common/action/DeclareAction.cpp
@@ -1,6 +1,6 @@
 /*	
  *	DeclareAction.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/action/DeclareAction.h b/chaos/common/action/DeclareAction.h
index 49bd04d4c22274d628d9ff9de9aa20bcd7990c7e..da9440321a2af9d39f0853c8827d1a51c3027364 100644
--- a/chaos/common/action/DeclareAction.h
+++ b/chaos/common/action/DeclareAction.h
@@ -1,6 +1,6 @@
 /*	
  *	DeclareAction.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio. 
  *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/action/DomainActions.cpp b/chaos/common/action/DomainActions.cpp
index c7e9e1ced1f234b6e06aaf0c4a862e2b38dea859..884f06539562e828864e7861d18987da9eb80ed7 100644
--- a/chaos/common/action/DomainActions.cpp
+++ b/chaos/common/action/DomainActions.cpp
@@ -1,6 +1,6 @@
 /*	
  *	DomainActions.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio. 
  *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/action/DomainActions.h b/chaos/common/action/DomainActions.h
index 8a37e1b88cffdbb85986113ee1b092a938dbb46c..703ac252bebf09aa7efacac5420a40c245e36675 100644
--- a/chaos/common/action/DomainActions.h
+++ b/chaos/common/action/DomainActions.h
@@ -1,6 +1,6 @@
 /*	
  *	DomainActions.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/async_central/AsyncCentralManager.cpp b/chaos/common/async_central/AsyncCentralManager.cpp
index f8d16b0a059fddc7d87c6123639a8b9bc5330c8c..4557304b036eadc757dd15fc574f3810cfca1ea3 100644
--- a/chaos/common/async_central/AsyncCentralManager.cpp
+++ b/chaos/common/async_central/AsyncCentralManager.cpp
@@ -1,6 +1,6 @@
 /*
  *	AsyncCentralManager.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/async_central/AsyncCentralManager.h b/chaos/common/async_central/AsyncCentralManager.h
index 30077cc42aa355d4db93690df5145bbe4fdc9759..f2a7b605f38a913acf3bf20f7fdd0c3ea6afe99f 100644
--- a/chaos/common/async_central/AsyncCentralManager.h
+++ b/chaos/common/async_central/AsyncCentralManager.h
@@ -1,6 +1,6 @@
 /*
  *	AsyncCentralManager.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/async_central/TimerHandler.cpp b/chaos/common/async_central/TimerHandler.cpp
index 16adbda0264b9506361181e42b33e802f17e82f1..961b9b8ee31d2c45012eb1b50822d3b56b5e0e4b 100644
--- a/chaos/common/async_central/TimerHandler.cpp
+++ b/chaos/common/async_central/TimerHandler.cpp
@@ -1,6 +1,6 @@
 /*
  *	TimerHandler.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/async_central/TimerHandler.h b/chaos/common/async_central/TimerHandler.h
index 97d4ce76f1e5eeeacae18642d0c13dae24a5fb2e..6d401c6ab1c8c54108cffbdf9b7b640875a3db42 100644
--- a/chaos/common/async_central/TimerHandler.h
+++ b/chaos/common/async_central/TimerHandler.h
@@ -1,6 +1,6 @@
 /*
  *	TimerHandler.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/batch_command/BatchCommand.cpp b/chaos/common/batch_command/BatchCommand.cpp
index 41f74fa76ece0fdae5fafbab2b16703e00c33c6a..d8d714c868de6e498ff52140e82eb6478617af79 100644
--- a/chaos/common/batch_command/BatchCommand.cpp
+++ b/chaos/common/batch_command/BatchCommand.cpp
@@ -1,6 +1,6 @@
 /*
  *	SlowCommand.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/batch_command/BatchCommand.h b/chaos/common/batch_command/BatchCommand.h
index 896dfc446dc5e60369ea9507a27e9dc6dedd3387..343c0a4c7e70d32e760b18f98bcb098a1f39f855 100644
--- a/chaos/common/batch_command/BatchCommand.h
+++ b/chaos/common/batch_command/BatchCommand.h
@@ -1,6 +1,6 @@
 /*
  *	BatchCommand.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
@@ -38,7 +38,7 @@ namespace chaos{
     
     namespace common {
         
-        //! The name space that group all foundamental class need by slow control !CHOAS implementation
+        //! The name space that group all foundamental class need by slow control !CHAOS implementation
         namespace batch_command {
             
             //forward declaration
diff --git a/chaos/common/batch_command/BatchCommandExecutor.cpp b/chaos/common/batch_command/BatchCommandExecutor.cpp
index ac0a51dc31797fee1743a5124f25f2b2031f9ca9..73119de4f4be627bb80f459f2e5fb43a3d5f2e02 100644
--- a/chaos/common/batch_command/BatchCommandExecutor.cpp
+++ b/chaos/common/batch_command/BatchCommandExecutor.cpp
@@ -1,6 +1,6 @@
 /*
  *	BatchCommandExecutor.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2013 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/batch_command/BatchCommandExecutor.h b/chaos/common/batch_command/BatchCommandExecutor.h
index 2132f7e885e36ad7ed45e5d11c00846b612b7024..3dc032031eb606b89cf0003a476af0b6e8f48747 100644
--- a/chaos/common/batch_command/BatchCommandExecutor.h
+++ b/chaos/common/batch_command/BatchCommandExecutor.h
@@ -1,6 +1,6 @@
 /*
  *	BatchCommandExecutor.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2013 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/caching_system/caching_thread/BufferTracker.h b/chaos/common/caching_system/caching_thread/BufferTracker.h
index 5a95182ed1afeb000ca20eff15a84c43fb93454c..b724831f3178143f9b9b7934fc7afd65d8f351b7 100644
--- a/chaos/common/caching_system/caching_thread/BufferTracker.h
+++ b/chaos/common/caching_system/caching_thread/BufferTracker.h
@@ -1,6 +1,6 @@
 /*
  *	BufferTracker.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Flaminio Antonucci.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/caching_system/caching_thread/GarbageThread.h b/chaos/common/caching_system/caching_thread/GarbageThread.h
index 11c79463752b3fcf6e8e24d5a33e70a5cca62f92..ad591f0c0f39ce1b710ca9c798ec7f613771eb48 100644
--- a/chaos/common/caching_system/caching_thread/GarbageThread.h
+++ b/chaos/common/caching_system/caching_thread/GarbageThread.h
@@ -1,6 +1,6 @@
 /*
  *	GarbageThread.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Flaminio Antonucci.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/caching_system/caching_thread/tracker_interface/DataAggregationInterface.h b/chaos/common/caching_system/caching_thread/tracker_interface/DataAggregationInterface.h
index e08712ed371ace95c5fbd7e29f63371f0f43748e..c0c309d3996f274bcf6a7b02d923306475ceb107 100644
--- a/chaos/common/caching_system/caching_thread/tracker_interface/DataAggregationInterface.h
+++ b/chaos/common/caching_system/caching_thread/tracker_interface/DataAggregationInterface.h
@@ -1,6 +1,6 @@
 /*
  *	DataAggregationFilterInterface.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Flaminio Antonucci.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/caching_system/caching_thread/tracker_interface/DataFetcherInterface.h b/chaos/common/caching_system/caching_thread/tracker_interface/DataFetcherInterface.h
index bb98487e9059619d005d0c61ce8c5769f7e05875..a6f9bc9339a361b13e27bad0dc585c29613887ff 100644
--- a/chaos/common/caching_system/caching_thread/tracker_interface/DataFetcherInterface.h
+++ b/chaos/common/caching_system/caching_thread/tracker_interface/DataFetcherInterface.h
@@ -1,6 +1,6 @@
 /*
  *	DataFetcherInterface.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Antonucci Flaminio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/caching_system/caching_thread/tracker_interface/EmbeddedDataTransform.h b/chaos/common/caching_system/caching_thread/tracker_interface/EmbeddedDataTransform.h
index c554e4eb5b6c8077da623b2f9c6fcd9c57254a86..aa8e3d8f1663e2fa29621326ceae1db6d0649e3a 100644
--- a/chaos/common/caching_system/caching_thread/tracker_interface/EmbeddedDataTransform.h
+++ b/chaos/common/caching_system/caching_thread/tracker_interface/EmbeddedDataTransform.h
@@ -1,6 +1,6 @@
 /*
  *	EmbeddedDataTransform.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Antonucci Flaminio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/caching_system/caching_thread/trackers/AbstractDeviceTracker.h b/chaos/common/caching_system/caching_thread/trackers/AbstractDeviceTracker.h
index 17b27256f4e942f492e6ccd15a2dd1142a7f6c60..46fa44b4318f4f89d47d2bf85df4c83b80b75da4 100644
--- a/chaos/common/caching_system/caching_thread/trackers/AbstractDeviceTracker.h
+++ b/chaos/common/caching_system/caching_thread/trackers/AbstractDeviceTracker.h
@@ -1,6 +1,6 @@
 /*
  *	AbstractDeviceTracker.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Antonucci Flaminio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/caching_system/caching_thread/trackers/FetcherDeviceTracker.h b/chaos/common/caching_system/caching_thread/trackers/FetcherDeviceTracker.h
index 1324bf606213380411340934f8020fc19b720e5c..a26d7b230abd3dc7d77c085f0ea86434356c627f 100644
--- a/chaos/common/caching_system/caching_thread/trackers/FetcherDeviceTracker.h
+++ b/chaos/common/caching_system/caching_thread/trackers/FetcherDeviceTracker.h
@@ -1,6 +1,6 @@
 /*
  *	FetcherDeviceTracker.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Flaminio Antonucci.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/caching_system/common_buffer/CommonBuffer.h b/chaos/common/caching_system/common_buffer/CommonBuffer.h
index 9e445b23836df976b67397e192d606a1a0554006..5f2aca3a123d68e93a54853483de7273b4a34ac5 100644
--- a/chaos/common/caching_system/common_buffer/CommonBuffer.h
+++ b/chaos/common/caching_system/common_buffer/CommonBuffer.h
@@ -1,6 +1,6 @@
 /*
  *	CommonBuffer.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Antonucci Flaminio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/caching_system/common_buffer/Element.h b/chaos/common/caching_system/common_buffer/Element.h
index 0513177f572cc7a94836fc9e8aec5aaab548c40a..2972e5656855fb7c658de7e16c80be13e1f5db50 100644
--- a/chaos/common/caching_system/common_buffer/Element.h
+++ b/chaos/common/caching_system/common_buffer/Element.h
@@ -1,6 +1,6 @@
 /*
  *	Element.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Flaminio Antonucci.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/caching_system/common_buffer/IteratorBase.h b/chaos/common/caching_system/common_buffer/IteratorBase.h
index 08d9ab584af4976a9b31b6eed1ec29195656edea..362607c17845e22b718cdeb6c8651d98f62794c0 100644
--- a/chaos/common/caching_system/common_buffer/IteratorBase.h
+++ b/chaos/common/caching_system/common_buffer/IteratorBase.h
@@ -1,6 +1,6 @@
 /*
  *	IteratorBase.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Antonucci Flaminio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/caching_system/common_buffer/IteratorGarbage.h b/chaos/common/caching_system/common_buffer/IteratorGarbage.h
index 751be22eff0b8896f30ec871c0ebc28fb475f67e..3bd00d10820dbceab34899cb1deb7dd9ff8e0ffc 100644
--- a/chaos/common/caching_system/common_buffer/IteratorGarbage.h
+++ b/chaos/common/caching_system/common_buffer/IteratorGarbage.h
@@ -1,6 +1,6 @@
 /*
  *	IteratorGarbage.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Flaminio Antonucci.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/caching_system/common_buffer/IteratorReader.h b/chaos/common/caching_system/common_buffer/IteratorReader.h
index b28ba07975453db4d7a0d59095513e50395178b8..e4b8f2acb985909593d440cfff5b7e307ce934c8 100644
--- a/chaos/common/caching_system/common_buffer/IteratorReader.h
+++ b/chaos/common/caching_system/common_buffer/IteratorReader.h
@@ -1,6 +1,6 @@
 /*
  *	IteratorReader.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Antonucci Flaminio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/caching_system/common_buffer/MemoryAllocator.h b/chaos/common/caching_system/common_buffer/MemoryAllocator.h
index d6d6666032aaa977714cd713eb109c7fddc1edaa..57524bed58b958c2a0ee738dff9acf5b319c8d7c 100644
--- a/chaos/common/caching_system/common_buffer/MemoryAllocator.h
+++ b/chaos/common/caching_system/common_buffer/MemoryAllocator.h
@@ -1,6 +1,6 @@
 /*
  *	MemoryAllocator.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Antonucci Flaminio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/caching_system/common_buffer/SmartPointer.h b/chaos/common/caching_system/common_buffer/SmartPointer.h
index dd17784fa7ff0ae397a0016cd7b6a67f645183a1..35caf859ca8f22065c104256f8cbdab9c7b08ca2 100644
--- a/chaos/common/caching_system/common_buffer/SmartPointer.h
+++ b/chaos/common/caching_system/common_buffer/SmartPointer.h
@@ -1,6 +1,6 @@
 /*
  *	SmartPointer.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Antonucci Flaminio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/caching_system/common_buffer/data_element/AbstractDataElement.h b/chaos/common/caching_system/common_buffer/data_element/AbstractDataElement.h
index 40f6c46abc657e82fc4995c85d77758741105f0b..fc1e6437d8d3857394341cef7ce01ab8fae7fa83 100644
--- a/chaos/common/caching_system/common_buffer/data_element/AbstractDataElement.h
+++ b/chaos/common/caching_system/common_buffer/data_element/AbstractDataElement.h
@@ -1,6 +1,6 @@
 /*
  *	AbstractDataElement.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Antonucci Flaminio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/caching_system/common_buffer/data_element/DataElement.h b/chaos/common/caching_system/common_buffer/data_element/DataElement.h
index c73d6daad3eb4cebeb0126b739a1a782b29bb3c8..82bbe5bc1c2df199e7e4ef33aca17700f2ceed29 100644
--- a/chaos/common/caching_system/common_buffer/data_element/DataElement.h
+++ b/chaos/common/caching_system/common_buffer/data_element/DataElement.h
@@ -1,6 +1,6 @@
 /*
  *	DataElement.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Flaminio Antonucci.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/caching_system/common_buffer/data_element/SmartData.h b/chaos/common/caching_system/common_buffer/data_element/SmartData.h
index 5e44a8f92d603d4deabe00b1722aae96ccb95f6e..6ca68977abbaabdf487641e2bb68d32458afdf61 100644
--- a/chaos/common/caching_system/common_buffer/data_element/SmartData.h
+++ b/chaos/common/caching_system/common_buffer/data_element/SmartData.h
@@ -1,6 +1,6 @@
 /*
  *	SmartData.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Flaminio Antonucci.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/caching_system/common_buffer/helper/IdFactory.h b/chaos/common/caching_system/common_buffer/helper/IdFactory.h
index 991ec9fb530b836847bc0243bfa405004202cc08..f5f10c6fa9ac6599560430ef5d4d3f8dd5bdf004 100644
--- a/chaos/common/caching_system/common_buffer/helper/IdFactory.h
+++ b/chaos/common/caching_system/common_buffer/helper/IdFactory.h
@@ -1,6 +1,6 @@
 /*
  *	IdFactory.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Flaminio Antonucci.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/caching_system/common_buffer/helper/MillisTime.h b/chaos/common/caching_system/common_buffer/helper/MillisTime.h
index 0faca9a2c1dcd05cb05a5470dd51258b5da07daa..957a7084a97aabb4a74eb177a15935287226c507 100644
--- a/chaos/common/caching_system/common_buffer/helper/MillisTime.h
+++ b/chaos/common/caching_system/common_buffer/helper/MillisTime.h
@@ -1,6 +1,6 @@
 /*
  *	Millis
- *	!CHOAS
+ *	!CHAOS
  *	Created by Flaminio Antonucci.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/chaos_constants.h b/chaos/common/chaos_constants.h
index dc8ea24f7834486f755ffa2aa0c53a2f73c2e2b9..09b94776eece6d4d8476fdfcd2db8cc513d6b453 100644
--- a/chaos/common/chaos_constants.h
+++ b/chaos/common/chaos_constants.h
@@ -122,12 +122,18 @@ namespace chaos {
          */
         static const char * const NODE_UNIQUE_ID        = "ndk_uid";
         
-        //! defines the domain where the node belong[string]
+        //! defines the unique id that is parent of target node [string]
         /*!
-         Identify an unique set that enclose one or more producer, consumer and user interfaces.
+         Identify an unique id that is the parent of the node
          */
-        static const char * const NODE_PARENT_SET       = "ndk_parent_set";
-        
+        static const char * const NODE_PARENT           = "ndk_parent";
+
+            //! defines at which group the node belong [array of unique id]
+        /*!
+         Every entry of the array is a unique id of a group
+         */
+        static const char * const NODE_GROUP_SET       = "ndk_group_set";
+
         //! define the node type[string]
         /*!
          The type permit to identify kind of node is. For example
diff --git a/chaos/common/configuration/GlobalConfiguration.cpp b/chaos/common/configuration/GlobalConfiguration.cpp
index ae506c0728e5be58459c660d829c112d761a860f..1bcf793847ef4f90c8ee1971e11ddc1105625291 100644
--- a/chaos/common/configuration/GlobalConfiguration.cpp
+++ b/chaos/common/configuration/GlobalConfiguration.cpp
@@ -1,6 +1,6 @@
 /*
  *	GlobalConfiguration.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/configuration/GlobalConfiguration.h b/chaos/common/configuration/GlobalConfiguration.h
index 0af4dd4b80bc6a174010b4aecf8183def6470b57..04d60a2dba834f54e1b47aeabb58b5ce603fbfb0 100644
--- a/chaos/common/configuration/GlobalConfiguration.h
+++ b/chaos/common/configuration/GlobalConfiguration.h
@@ -1,6 +1,6 @@
 /*	
  *	GlobalConfiguration.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/data/BsonFragment.cpp b/chaos/common/data/BsonFragment.cpp
index 125d3057b5df318d29a8c991466860280f0f542c..135c308fe3d9b30af3cfadfcd5d86bc50b8b1840 100644
--- a/chaos/common/data/BsonFragment.cpp
+++ b/chaos/common/data/BsonFragment.cpp
@@ -1,6 +1,6 @@
 /*
  *	BsonFragment.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/data/BsonFragment.h b/chaos/common/data/BsonFragment.h
index 26267a20c296e1e4cc0cff0de432973b7536b41e..4135ca30b74bdbee928b46d2b5e5a071758eeead 100644
--- a/chaos/common/data/BsonFragment.h
+++ b/chaos/common/data/BsonFragment.h
@@ -1,6 +1,6 @@
 /*
  *	BsonFragment.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/data/CDataWrapper.cpp b/chaos/common/data/CDataWrapper.cpp
index 5590c7355d02148d9001efc416e834be622444f8..24fdd57a3eb824b7a59c23a6fd48a60ffb35be99 100644
--- a/chaos/common/data/CDataWrapper.cpp
+++ b/chaos/common/data/CDataWrapper.cpp
@@ -1,6 +1,6 @@
 /*
  *	CDataWrapper.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
@@ -295,6 +295,22 @@ SerializationBuffer* CDataWrapper::getBSONData(){
     return result;
 }
 
+/*
+ Return the pointer of the data and the size. th eownership of data remain
+ of the CDataWrapper
+ */
+const char* CDataWrapper::getBSONRawData(int& size) {
+        //finalize the bson object
+    if( bsonBuilder->len()==0 ) return NULL;
+
+        //get the object
+    BSONObj bsonObject = bsonBuilder->asTempObj();
+        //we have some data
+    size = bsonObject.objsize();
+        //recreate bson builder for next fill
+    return bsonObject.objdata();
+}
+
 //return the json data
 SerializationBuffer* CDataWrapper::getJSONData() {
     //finalize the bson object
diff --git a/chaos/common/data/CDataWrapper.h b/chaos/common/data/CDataWrapper.h
index c2399fb0e23a5e092b327a039527f4555ed58941..3af2d98f4be0ce74ee2c622338b1b202dfa65ffe 100644
--- a/chaos/common/data/CDataWrapper.h
+++ b/chaos/common/data/CDataWrapper.h
@@ -1,6 +1,6 @@
 /*
  *	CDataWrapper.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
@@ -166,7 +166,9 @@ namespace chaos {
 				
 				//return the bson data
 				SerializationBuffer* getBSONData();
-				
+
+                const char* getBSONRawData(int& size);
+
 				//return the json data
 				SerializationBuffer* getJSONData();
 				
diff --git a/chaos/common/data/CUSchemaDB.cpp b/chaos/common/data/CUSchemaDB.cpp
index 1258fe3201b5eb2755928af1067b02784ed47ecc..ee4a32c8aed74d59dc5d469a9bc6b621dcea0b24 100644
--- a/chaos/common/data/CUSchemaDB.cpp
+++ b/chaos/common/data/CUSchemaDB.cpp
@@ -1,6 +1,6 @@
 /*
  *	CUSchemaDB.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/data/CUSchemaDB.h b/chaos/common/data/CUSchemaDB.h
index 81075b82ee9e8c3afefd7ceb25681a8b064ebf4c..2b102a971256a45285482f500724fff71bb311bd 100644
--- a/chaos/common/data/CUSchemaDB.h
+++ b/chaos/common/data/CUSchemaDB.h
@@ -1,6 +1,6 @@
 /*
  *	CUSchemaDB.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/data/DatasetDB.cpp b/chaos/common/data/DatasetDB.cpp
index 225557c7fa04987325b8829c5646b58a62710b00..bcb87fe87c30642f4fee3598d114647046f30db1 100644
--- a/chaos/common/data/DatasetDB.cpp
+++ b/chaos/common/data/DatasetDB.cpp
@@ -1,6 +1,6 @@
 /*
  *	DatasetDB.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2013 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/data/DatasetDB.h b/chaos/common/data/DatasetDB.h
index 2468afd4863cc6bc33a0dc9c73995d87168ec239..8605b4bffba427c398fd57cbabe9dac081cc782c 100644
--- a/chaos/common/data/DatasetDB.h
+++ b/chaos/common/data/DatasetDB.h
@@ -1,6 +1,6 @@
 /*
  *	DatasetDB.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2013 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/data/broker/DataBroker.cpp b/chaos/common/data/broker/DataBroker.cpp
index 33a953e3e17a66bc11c491054fd7f76cffd23cb7..27dd27f924f42bfd4dfa40bc6dad25430cd13542 100644
--- a/chaos/common/data/broker/DataBroker.cpp
+++ b/chaos/common/data/broker/DataBroker.cpp
@@ -1,6 +1,6 @@
 /*
  *	DataBroker.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/data/broker/DataBroker.h b/chaos/common/data/broker/DataBroker.h
index a744c131d9a061d3cab610f0c48a3f840f093a4e..2ea1eff0c41b9e2fac233d3f3581758f7b028080 100644
--- a/chaos/common/data/broker/DataBroker.h
+++ b/chaos/common/data/broker/DataBroker.h
@@ -1,6 +1,6 @@
 /*
  *	DataBroker.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/data/broker/publisher/PublisherDataService.cpp b/chaos/common/data/broker/publisher/PublisherDataService.cpp
index 7d4e49a6957336f48eb4ae591ced2aa19af35535..163a9d27c1216ffd522ca8efe60458e1060d2f2a 100644
--- a/chaos/common/data/broker/publisher/PublisherDataService.cpp
+++ b/chaos/common/data/broker/publisher/PublisherDataService.cpp
@@ -1,6 +1,6 @@
 /*
  *	PublishDataService.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/data/broker/publisher/PublisherDataService.h b/chaos/common/data/broker/publisher/PublisherDataService.h
index 28b2b52b64acb946fbd0c4c2b78779b62c9a57b6..0dba9de73f10f5c601151cdf86fb7819aa02e92b 100644
--- a/chaos/common/data/broker/publisher/PublisherDataService.h
+++ b/chaos/common/data/broker/publisher/PublisherDataService.h
@@ -1,6 +1,6 @@
 /*
  *	PublisherDataService.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/data/broker/reader/ReaderDataService.cpp b/chaos/common/data/broker/reader/ReaderDataService.cpp
index 457a628f00190ffadef13d4fccc1a2a45b81d68a..faa977f7d6f41c5df2ba092db06313e83d6d4b54 100644
--- a/chaos/common/data/broker/reader/ReaderDataService.cpp
+++ b/chaos/common/data/broker/reader/ReaderDataService.cpp
@@ -1,6 +1,6 @@
 /*
  *	ReaderDataService.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/data/broker/reader/ReaderDataService.h b/chaos/common/data/broker/reader/ReaderDataService.h
index 54c5e186957d177adf7871440c00af089aedbcf6..1317eb812332b1d31e526740b2a691cea96556a1 100644
--- a/chaos/common/data/broker/reader/ReaderDataService.h
+++ b/chaos/common/data/broker/reader/ReaderDataService.h
@@ -1,6 +1,6 @@
 /*
  *	ReaderDataService.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/data/cache/FastHash.cpp b/chaos/common/data/cache/FastHash.cpp
index 8c60777d5e08d409441b0a542295adfb34256fb8..03d8e3a26311493bbb407121e0f32ffbfbf22da0 100644
--- a/chaos/common/data/cache/FastHash.cpp
+++ b/chaos/common/data/cache/FastHash.cpp
@@ -1,6 +1,6 @@
 /*
  *	FastHash.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Modified by Bisegni Claudio.
  *
  * The hash function used here is by Bob Jenkins, 1996:
diff --git a/chaos/common/data/cache/FastHash.h b/chaos/common/data/cache/FastHash.h
index 83f8b682eb0fda016da00f2fd2d88838e4f0dce0..88575a6cde13b9f5cc117204cb43d474ee926dc4 100644
--- a/chaos/common/data/cache/FastHash.h
+++ b/chaos/common/data/cache/FastHash.h
@@ -1,6 +1,6 @@
 /*
  *	FastHash.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Modified by Bisegni Claudio.
  *
  * The hash function used here is by Bob Jenkins, 1996:
diff --git a/chaos/common/data/cache/KeyGroupCache.cpp b/chaos/common/data/cache/KeyGroupCache.cpp
index c17f67917b4899f8251b1484837aea5c67885f92..dadf876608e5b5d29e244bea313c1729c961a01b 100644
--- a/chaos/common/data/cache/KeyGroupCache.cpp
+++ b/chaos/common/data/cache/KeyGroupCache.cpp
@@ -1,6 +1,6 @@
 /*
  *	KeyGroupCache.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/data/cache/KeyGroupCache.h b/chaos/common/data/cache/KeyGroupCache.h
index 1f0893fbd039dec431ca7d86991b8961624afbb7..ca5e538d92cb6d88c3c20ca131b7e3a099caf4b4 100644
--- a/chaos/common/data/cache/KeyGroupCache.h
+++ b/chaos/common/data/cache/KeyGroupCache.h
@@ -1,6 +1,6 @@
 /*
  *	KeyGroupCache.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/data/cache/LFDataCache.cpp b/chaos/common/data/cache/LFDataCache.cpp
index bd89daa0000736fe5cd042b1e379d54d5de8a891..d97424ab193ccbee3c396bb355894547358413aa 100644
--- a/chaos/common/data/cache/LFDataCache.cpp
+++ b/chaos/common/data/cache/LFDataCache.cpp
@@ -1,6 +1,6 @@
 /*
  *	LFDataCache.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/data/cache/LFDataCache.h b/chaos/common/data/cache/LFDataCache.h
index a5db817571c3d9ab3c750b0c29f6f016fe4cdf59..ffda5356a9ab969e1c9ecbfb6261ce22db7859ad 100644
--- a/chaos/common/data/cache/LFDataCache.h
+++ b/chaos/common/data/cache/LFDataCache.h
@@ -1,6 +1,6 @@
 /*
  *	LFDataCache.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/data/entity/Entity.cpp b/chaos/common/data/entity/Entity.cpp
index 1fb98dd0fceab585b4bcace064fd91fa440fe879..d003609d85154417b3377631ff09233b33fe7f39 100644
--- a/chaos/common/data/entity/Entity.cpp
+++ b/chaos/common/data/entity/Entity.cpp
@@ -1,6 +1,6 @@
 /*
  *	Entity.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/data/entity/Entity.h b/chaos/common/data/entity/Entity.h
index 3f24de389530d73e379f610fceedca191643daad..cc63bd8cf5a36d7989102767fb95795802ed9c8a 100644
--- a/chaos/common/data/entity/Entity.h
+++ b/chaos/common/data/entity/Entity.h
@@ -1,6 +1,6 @@
 /*
  *	Entity.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/data/entity/Record.h b/chaos/common/data/entity/Record.h
index 4f3f0e28f6efd9d6c67ddcd03f5b00a5f58d9131..f71ce2f4bb09c6158c22d2a10b9a423a2e9ebb86 100644
--- a/chaos/common/data/entity/Record.h
+++ b/chaos/common/data/entity/Record.h
@@ -1,6 +1,6 @@
 /*
  *	Record.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/data/entity_db/EntityDB.cpp b/chaos/common/data/entity_db/EntityDB.cpp
index 6bf5d641715e0008a6203ccefb361fbb5b917b25..f481cac891a19a7a95d3e202e6f6983ef59b49f0 100644
--- a/chaos/common/data/entity_db/EntityDB.cpp
+++ b/chaos/common/data/entity_db/EntityDB.cpp
@@ -1,6 +1,6 @@
 /*
  *	EntityDB.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/data/entity_db/EntityDB.h b/chaos/common/data/entity_db/EntityDB.h
index 7a3b4dbf9ca3b9b4effd27ff81c49b914263931b..0fecd2433072516853340115a863d47542a9d542 100644
--- a/chaos/common/data/entity_db/EntityDB.h
+++ b/chaos/common/data/entity_db/EntityDB.h
@@ -1,6 +1,6 @@
 /*
  *	EntityDB.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/data/entity_db/sqlite_impl/SQLiteEntityDB.cpp b/chaos/common/data/entity_db/sqlite_impl/SQLiteEntityDB.cpp
index 7c6bf4f7915a72f9abe1faae74ad8c6745927d4c..073f780e87914163f1321863ff49843d34e8e11b 100644
--- a/chaos/common/data/entity_db/sqlite_impl/SQLiteEntityDB.cpp
+++ b/chaos/common/data/entity_db/sqlite_impl/SQLiteEntityDB.cpp
@@ -1,6 +1,6 @@
 /*
  *	SQLiteEntityDB.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/data/entity_db/sqlite_impl/SQLiteEntityDB.h b/chaos/common/data/entity_db/sqlite_impl/SQLiteEntityDB.h
index 32ffdc110d177df1777be16f88bc62b8418720f7..fd1bcd62c33c974d69d6b39c659f5915cfcc7d7d 100644
--- a/chaos/common/data/entity_db/sqlite_impl/SQLiteEntityDB.h
+++ b/chaos/common/data/entity_db/sqlite_impl/SQLiteEntityDB.h
@@ -1,6 +1,6 @@
 /*
  *	SQLiteEntityDB.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/DirectIO.h b/chaos/common/direct_io/DirectIO.h
index 4a1861642b21f802fca6aba193d5fbde63f09a35..b24d0547953982f9573b849721da097cb1c2d4e4 100644
--- a/chaos/common/direct_io/DirectIO.h
+++ b/chaos/common/direct_io/DirectIO.h
@@ -1,6 +1,6 @@
 /*
  *	DirectIO.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/DirectIOClient.cpp b/chaos/common/direct_io/DirectIOClient.cpp
index 995757288b00b0a4596db4e044f3fac4cd946d76..55c24e8d866ddcaaf87ccfd097a44d69c5225993 100644
--- a/chaos/common/direct_io/DirectIOClient.cpp
+++ b/chaos/common/direct_io/DirectIOClient.cpp
@@ -1,6 +1,6 @@
 /*
  *	DirectIOClient.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/DirectIOClient.h b/chaos/common/direct_io/DirectIOClient.h
index 83fe41631fbea3826e3328fa610f86c7a7064456..b54c7ce77a0cfdb95143b5ee489aa6c0c6739a46 100644
--- a/chaos/common/direct_io/DirectIOClient.h
+++ b/chaos/common/direct_io/DirectIOClient.h
@@ -1,6 +1,6 @@
 /*
  *	DirectIOClient.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/DirectIOClientConnection.cpp b/chaos/common/direct_io/DirectIOClientConnection.cpp
index b6b06164966401231a94ed4fc2a89508b589738a..f428147dfc9efb3c9a73bfd2c5080cb47fc1b13b 100644
--- a/chaos/common/direct_io/DirectIOClientConnection.cpp
+++ b/chaos/common/direct_io/DirectIOClientConnection.cpp
@@ -1,6 +1,6 @@
 /*
  *	DirectIOClientConnection.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/DirectIOClientConnection.h b/chaos/common/direct_io/DirectIOClientConnection.h
index 335301bd5437cc5227d6ac3070ed857904966f1c..d7b4334ead4beaf9f1ddbdf250632fa04e168058 100644
--- a/chaos/common/direct_io/DirectIOClientConnection.h
+++ b/chaos/common/direct_io/DirectIOClientConnection.h
@@ -1,6 +1,6 @@
 /*
  *	DirectIOClientConnection.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/DirectIODataPack.h b/chaos/common/direct_io/DirectIODataPack.h
index 9732f58c9f22e2802686bb7e448a26cf50eef557..fc6c92892cf31ec2feaff3ebcc5417f49919b6f9 100644
--- a/chaos/common/direct_io/DirectIODataPack.h
+++ b/chaos/common/direct_io/DirectIODataPack.h
@@ -1,6 +1,6 @@
 /*
  *	DirectIODataPack.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/DirectIODispatcher.cpp b/chaos/common/direct_io/DirectIODispatcher.cpp
index 635a5ae6a3c990cdcfcd8906dbb92a4b4e8d8b79..86391a6ea0d496a696ea2e6f8c8e9a10e70c1975 100644
--- a/chaos/common/direct_io/DirectIODispatcher.cpp
+++ b/chaos/common/direct_io/DirectIODispatcher.cpp
@@ -1,6 +1,6 @@
 /*
  *	AbstractDirectIODispatcher.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/DirectIODispatcher.h b/chaos/common/direct_io/DirectIODispatcher.h
index 31b3ae1e0f3056932d591aeb24fc4dc3cc0534ad..056e08fd9780a901bdb2ab4675edeeb8c7aed549 100644
--- a/chaos/common/direct_io/DirectIODispatcher.h
+++ b/chaos/common/direct_io/DirectIODispatcher.h
@@ -1,6 +1,6 @@
 /*
  *	AbstractDirectIODispatcher.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/DirectIOEndpointHandler.h b/chaos/common/direct_io/DirectIOEndpointHandler.h
index 82eb596eb3f06a9aa5e01a85573e5c473ea81414..e052d96c4ed3c4ee5df193c471cb7d2942375862 100644
--- a/chaos/common/direct_io/DirectIOEndpointHandler.h
+++ b/chaos/common/direct_io/DirectIOEndpointHandler.h
@@ -1,6 +1,6 @@
 /*
  *	DirectIOEndpointHandler.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/DirectIOForwarder.h b/chaos/common/direct_io/DirectIOForwarder.h
index 853bd70447c45e2c21c317aa7c51dd556e82baa3..e698d9e75a616d394bd9734b36bc27270ebe2335 100644
--- a/chaos/common/direct_io/DirectIOForwarder.h
+++ b/chaos/common/direct_io/DirectIOForwarder.h
@@ -1,6 +1,6 @@
 /*
  *	DirectIOForwarder.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/DirectIOHandler.h b/chaos/common/direct_io/DirectIOHandler.h
index e6623031ea1e01175e7d11aba13b584f29a5a731..7936289aadb7f8ba12870acb23bdfa436c8ce74e 100644
--- a/chaos/common/direct_io/DirectIOHandler.h
+++ b/chaos/common/direct_io/DirectIOHandler.h
@@ -1,6 +1,6 @@
 /*
  *	DirectIOHandler.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/DirectIOPerformanceSession.h b/chaos/common/direct_io/DirectIOPerformanceSession.h
index 8e76894b25cdd9c7e8d8baba214c01d7f832a0df..63546436930f482e67c9fdc1f69f0b5c32c17681 100644
--- a/chaos/common/direct_io/DirectIOPerformanceSession.h
+++ b/chaos/common/direct_io/DirectIOPerformanceSession.h
@@ -1,6 +1,6 @@
 /*
  *	DirectIOPerformanceSession.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/DirectIOServer.cpp b/chaos/common/direct_io/DirectIOServer.cpp
index f35e9dc9ac3f4f4da36d28baf8e097cd1f0063f3..2afe6e09e03ccf6c932df0b2d5f62cf16aaede01 100644
--- a/chaos/common/direct_io/DirectIOServer.cpp
+++ b/chaos/common/direct_io/DirectIOServer.cpp
@@ -1,6 +1,6 @@
 /*
  *	DirectIOServer.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/DirectIOServer.h b/chaos/common/direct_io/DirectIOServer.h
index 57887a96b5c0e7c675d0970d09ec6f0b64b2f892..feb57a56d7afa216969d2e056329e3e35b8e3220 100644
--- a/chaos/common/direct_io/DirectIOServer.h
+++ b/chaos/common/direct_io/DirectIOServer.h
@@ -1,6 +1,6 @@
 /*
  *	DirectIOServer.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/DirectIOServerEndpoint.cpp b/chaos/common/direct_io/DirectIOServerEndpoint.cpp
index f44d0998c782414cf956ed30ef44653cac949dec..b697211c0171cc6ebcadd49cae4779d82368b750 100644
--- a/chaos/common/direct_io/DirectIOServerEndpoint.cpp
+++ b/chaos/common/direct_io/DirectIOServerEndpoint.cpp
@@ -1,6 +1,6 @@
 /*
  *	DirectIOServerEndpoint.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/DirectIOServerEndpoint.h b/chaos/common/direct_io/DirectIOServerEndpoint.h
index 90bc017c7c0080a0c1ef38ef873b4947de0c6591..41ac842721ec066ebc1196faf38778b9478abfb7 100644
--- a/chaos/common/direct_io/DirectIOServerEndpoint.h
+++ b/chaos/common/direct_io/DirectIOServerEndpoint.h
@@ -1,6 +1,6 @@
 /*
  *	DirectIOServerEndpoint.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/DirectIOServerPublicInterface.h b/chaos/common/direct_io/DirectIOServerPublicInterface.h
index 13735edc60f217cb7a0d13a90e1267dd8a06c9f0..912d0636711f4543577383aba3e2026bd256243c 100644
--- a/chaos/common/direct_io/DirectIOServerPublicInterface.h
+++ b/chaos/common/direct_io/DirectIOServerPublicInterface.h
@@ -1,6 +1,6 @@
 /*
  *	DirectIOServerPublicInterface.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/DirectIOTypes.h b/chaos/common/direct_io/DirectIOTypes.h
index 7bc100f9dafa85042a05d4086064417c5d16fa25..9648ad83a8e4e0ea5904fc50490c32c6456c903b 100644
--- a/chaos/common/direct_io/DirectIOTypes.h
+++ b/chaos/common/direct_io/DirectIOTypes.h
@@ -1,6 +1,6 @@
 /*
  *	DirectIOTypes.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/DirectIOURLManagment.cpp b/chaos/common/direct_io/DirectIOURLManagment.cpp
index 0d7f691b1b2bf8a5a5c1da1a06d683a0818adc6b..0cea6c2d33daad4240c8bcb7a264665828cb9c50 100644
--- a/chaos/common/direct_io/DirectIOURLManagment.cpp
+++ b/chaos/common/direct_io/DirectIOURLManagment.cpp
@@ -1,6 +1,6 @@
 /*
  *	DirectIOURLManagment.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/DirectIOURLManagment.h b/chaos/common/direct_io/DirectIOURLManagment.h
index af52dbd16ec5ebe85afbcdf22936d40173a62240..e6ebea01fb257a13a6d670534c568b8d003de870 100644
--- a/chaos/common/direct_io/DirectIOURLManagment.h
+++ b/chaos/common/direct_io/DirectIOURLManagment.h
@@ -1,6 +1,6 @@
 /*
  *	DirectIOURLManagment.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/channel/DirectIOChannelGlobal.h b/chaos/common/direct_io/channel/DirectIOChannelGlobal.h
index 4bfcb28dc0a1af1a905168320f8957acc15c47d7..e815c5e2051c54b8cf1ab7661c9bae6c3314adeb 100644
--- a/chaos/common/direct_io/channel/DirectIOChannelGlobal.h
+++ b/chaos/common/direct_io/channel/DirectIOChannelGlobal.h
@@ -1,6 +1,6 @@
 /*
  *	DirectIOEndpointHandler.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/channel/DirectIODeviceClientChannel.cpp b/chaos/common/direct_io/channel/DirectIODeviceClientChannel.cpp
index 8bbe8fda58278a17ee28c3f0bf94dfd6f35ab057..5e34b44c7e84497ad0f8e1af2d363ac14aa0e315 100644
--- a/chaos/common/direct_io/channel/DirectIODeviceClientChannel.cpp
+++ b/chaos/common/direct_io/channel/DirectIODeviceClientChannel.cpp
@@ -1,6 +1,6 @@
 /*
  *	DirectIODeviceDatasetClientChannel.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/channel/DirectIODeviceClientChannel.h b/chaos/common/direct_io/channel/DirectIODeviceClientChannel.h
index 9b8567608951fc9a5d6d9398f5e5be45125f0a3d..accfbbcb89ae904d285b3a03ac53df59b0d99d09 100644
--- a/chaos/common/direct_io/channel/DirectIODeviceClientChannel.h
+++ b/chaos/common/direct_io/channel/DirectIODeviceClientChannel.h
@@ -1,6 +1,6 @@
 /*
  *	DirectIODeviceClientChannel.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/channel/DirectIODeviceServerChannel.cpp b/chaos/common/direct_io/channel/DirectIODeviceServerChannel.cpp
index 6a1836ab8a701065e5ce23f769a9fb8140757c7c..6d5d9eaf080a86a634d2c1fe084e4261d3cfc9a8 100644
--- a/chaos/common/direct_io/channel/DirectIODeviceServerChannel.cpp
+++ b/chaos/common/direct_io/channel/DirectIODeviceServerChannel.cpp
@@ -1,6 +1,6 @@
 /*
  *	DirectIODeviceServerChannel.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/channel/DirectIODeviceServerChannel.h b/chaos/common/direct_io/channel/DirectIODeviceServerChannel.h
index aee86a8ca2e5a5b70d8abb9ffa891de4f252d106..69a8ca99c78101f80c9f5454c2134957c263b4c3 100644
--- a/chaos/common/direct_io/channel/DirectIODeviceServerChannel.h
+++ b/chaos/common/direct_io/channel/DirectIODeviceServerChannel.h
@@ -1,6 +1,6 @@
 /*
  *	DirectIODeviceServerChannel.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/channel/DirectIOPerformanceClientChannel.cpp b/chaos/common/direct_io/channel/DirectIOPerformanceClientChannel.cpp
index 8ecf79094127fcfd676408882ed5a57499c71793..b7485c5e15752fd7696463b982e1b11be56e3c3b 100644
--- a/chaos/common/direct_io/channel/DirectIOPerformanceClientChannel.cpp
+++ b/chaos/common/direct_io/channel/DirectIOPerformanceClientChannel.cpp
@@ -1,6 +1,6 @@
 /*
  *	DirectIOPerformanceClientChannel.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/channel/DirectIOPerformanceClientChannel.h b/chaos/common/direct_io/channel/DirectIOPerformanceClientChannel.h
index a3580aae3f6f1d15521c75808b869f9749769255..e557ec7cd2fba36946e2638d55ba25198946ed0c 100644
--- a/chaos/common/direct_io/channel/DirectIOPerformanceClientChannel.h
+++ b/chaos/common/direct_io/channel/DirectIOPerformanceClientChannel.h
@@ -1,6 +1,6 @@
 /*
  *	DirectIOPerformanceClientChannel.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/channel/DirectIOPerformanceServerChannel.cpp b/chaos/common/direct_io/channel/DirectIOPerformanceServerChannel.cpp
index 42387c59890b26d6f7fd2be450c294b95f90049a..7b61a7eeeee518e2f40af64fa90242f90b7dbf79 100644
--- a/chaos/common/direct_io/channel/DirectIOPerformanceServerChannel.cpp
+++ b/chaos/common/direct_io/channel/DirectIOPerformanceServerChannel.cpp
@@ -1,6 +1,6 @@
 /*
  *	DirectIOPerformanceServerChannel.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/channel/DirectIOPerformanceServerChannel.h b/chaos/common/direct_io/channel/DirectIOPerformanceServerChannel.h
index 5dd959a0c33180743e2182b49ea4aef03bce499b..b4490d2615112f96b468f60390be70d74d7c2b5f 100644
--- a/chaos/common/direct_io/channel/DirectIOPerformanceServerChannel.h
+++ b/chaos/common/direct_io/channel/DirectIOPerformanceServerChannel.h
@@ -1,6 +1,6 @@
 /*
  *	DirectIOPerformanceServerChannel.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/channel/DirectIOSystemAPIClientChannel.cpp b/chaos/common/direct_io/channel/DirectIOSystemAPIClientChannel.cpp
index 07417273578d32da3311c88c42d1980d822d8ef2..5fb765779093adbee687bed4eaa81badd9af915c 100644
--- a/chaos/common/direct_io/channel/DirectIOSystemAPIClientChannel.cpp
+++ b/chaos/common/direct_io/channel/DirectIOSystemAPIClientChannel.cpp
@@ -1,6 +1,6 @@
 /*
  *	DirectIOSystemAPIClientChannel.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/channel/DirectIOSystemAPIClientChannel.h b/chaos/common/direct_io/channel/DirectIOSystemAPIClientChannel.h
index 4d2884add18e79175229031192af1ea54ef7c804..21015192033da53233014b85d15980d18cae5064 100644
--- a/chaos/common/direct_io/channel/DirectIOSystemAPIClientChannel.h
+++ b/chaos/common/direct_io/channel/DirectIOSystemAPIClientChannel.h
@@ -1,6 +1,6 @@
 /*
  *	DirectIOSystemAPIClientChannel.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/channel/DirectIOSystemAPIServerChannel.cpp b/chaos/common/direct_io/channel/DirectIOSystemAPIServerChannel.cpp
index 97ae6551a75e95e7df294e3f0f9d6801858487dd..e912bd19362e2437e70ad8345e52d67096f15671 100644
--- a/chaos/common/direct_io/channel/DirectIOSystemAPIServerChannel.cpp
+++ b/chaos/common/direct_io/channel/DirectIOSystemAPIServerChannel.cpp
@@ -1,6 +1,6 @@
 /*
  *	DirectIOSystemAPIServerChannel.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/channel/DirectIOSystemAPIServerChannel.h b/chaos/common/direct_io/channel/DirectIOSystemAPIServerChannel.h
index ea293c09ff49daafde819843a5845d62a4eec270..a927966a967bd6a534caabb464a071e9d142560d 100644
--- a/chaos/common/direct_io/channel/DirectIOSystemAPIServerChannel.h
+++ b/chaos/common/direct_io/channel/DirectIOSystemAPIServerChannel.h
@@ -1,6 +1,6 @@
 /*
  *	DirectIOPerformanceServerChannel.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/channel/DirectIOVirtualChannel.cpp b/chaos/common/direct_io/channel/DirectIOVirtualChannel.cpp
index 6cf5d0e26ee0baafd1dce92068b7071461bb88e1..703eb979f7ae1ce3de206f2922c5ea163aca9124 100644
--- a/chaos/common/direct_io/channel/DirectIOVirtualChannel.cpp
+++ b/chaos/common/direct_io/channel/DirectIOVirtualChannel.cpp
@@ -1,6 +1,6 @@
 /*
  *	DirectIOVirtualChannel.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/channel/DirectIOVirtualChannel.h b/chaos/common/direct_io/channel/DirectIOVirtualChannel.h
index 8e4fa99fa554956434614aab2d9b7b9b53ec5e16..c95ba6222a27a17df590e7fafcd3bdc9f3e0795b 100644
--- a/chaos/common/direct_io/channel/DirectIOVirtualChannel.h
+++ b/chaos/common/direct_io/channel/DirectIOVirtualChannel.h
@@ -1,6 +1,6 @@
 /*
  *	DirectIOVirtualChannel
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/channel/DirectIOVirtualClientChannel.cpp b/chaos/common/direct_io/channel/DirectIOVirtualClientChannel.cpp
index c9c80b617337ef298028a20d69fe0ae977cfe9b0..445af9a2027ae5817d5672a2c4e89628a4945b0e 100644
--- a/chaos/common/direct_io/channel/DirectIOVirtualClientChannel.cpp
+++ b/chaos/common/direct_io/channel/DirectIOVirtualClientChannel.cpp
@@ -1,6 +1,6 @@
 /*
  *	DirectIOVirtualChannel.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/channel/DirectIOVirtualClientChannel.h b/chaos/common/direct_io/channel/DirectIOVirtualClientChannel.h
index 7ade82aac70d80ab2460f21d6c9ae1456be40a7c..c7ce538a3792ccaf21e3c1ef1019cfb12468ff11 100644
--- a/chaos/common/direct_io/channel/DirectIOVirtualClientChannel.h
+++ b/chaos/common/direct_io/channel/DirectIOVirtualClientChannel.h
@@ -1,6 +1,6 @@
 /*
  *	DirectIOVirtualChannel.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/channel/DirectIOVirtualServerChannel.cpp b/chaos/common/direct_io/channel/DirectIOVirtualServerChannel.cpp
index 066696090e3a4e82068c973e6b0239b512aec0c2..cf5390ea85264377b4d26009f74c92350ab23243 100644
--- a/chaos/common/direct_io/channel/DirectIOVirtualServerChannel.cpp
+++ b/chaos/common/direct_io/channel/DirectIOVirtualServerChannel.cpp
@@ -1,6 +1,6 @@
 /*
  *	DirectIOVirtualServerChannel.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/channel/DirectIOVirtualServerChannel.h b/chaos/common/direct_io/channel/DirectIOVirtualServerChannel.h
index 0df01af42ea113d1fd9c11c0361c70708e0937cc..7a1596707d4f93372bf5858f95be3f7fa48264e2 100644
--- a/chaos/common/direct_io/channel/DirectIOVirtualServerChannel.h
+++ b/chaos/common/direct_io/channel/DirectIOVirtualServerChannel.h
@@ -1,6 +1,6 @@
 /*
  *	DirectIOVirtualServerChannel.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/impl/ZMQDirectIOClient.cpp b/chaos/common/direct_io/impl/ZMQDirectIOClient.cpp
index cc311b0f91db8e7bc93012b92abcbf00ecfe601a..0586c3c4f4511117c0020b18bc68cb00656480d5 100644
--- a/chaos/common/direct_io/impl/ZMQDirectIOClient.cpp
+++ b/chaos/common/direct_io/impl/ZMQDirectIOClient.cpp
@@ -1,6 +1,6 @@
 /*
  *	ZMQDirectIOClinet.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/impl/ZMQDirectIOClient.h b/chaos/common/direct_io/impl/ZMQDirectIOClient.h
index 6f3b1d87e699a6ce2e572e9c92143cc0ec839bfa..6b67ab96304ec1991adb274127d0e181ceb0debd 100644
--- a/chaos/common/direct_io/impl/ZMQDirectIOClient.h
+++ b/chaos/common/direct_io/impl/ZMQDirectIOClient.h
@@ -1,7 +1,7 @@
 
 /*
  *	ZMQDirectIOClient.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/impl/ZMQDirectIOClientConnection.h b/chaos/common/direct_io/impl/ZMQDirectIOClientConnection.h
index f97dc2c1550fcaf97da6bc99e24a9512d3eddb45..28b26a23fcac9893461483bfe1b60a9b4dc7c9d9 100644
--- a/chaos/common/direct_io/impl/ZMQDirectIOClientConnection.h
+++ b/chaos/common/direct_io/impl/ZMQDirectIOClientConnection.h
@@ -1,6 +1,6 @@
 /*
  *	ZMQDirectIOClientConnection.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/impl/ZMQDirectIOServer.cpp b/chaos/common/direct_io/impl/ZMQDirectIOServer.cpp
index b261f51c7610b7e97eb00b98379656d2e59e6d68..57180198b9b21efded6c584d84c7239fc022103e 100644
--- a/chaos/common/direct_io/impl/ZMQDirectIOServer.cpp
+++ b/chaos/common/direct_io/impl/ZMQDirectIOServer.cpp
@@ -1,6 +1,6 @@
 /*
  *	ZMQDirectIOServer.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/impl/ZMQDirectIOServer.h b/chaos/common/direct_io/impl/ZMQDirectIOServer.h
index 55b7b04e87c618f1b18252060ad436a9e248efd8..caf36d04d1f43d441114e6ea5bb9782883d69f19 100644
--- a/chaos/common/direct_io/impl/ZMQDirectIOServer.h
+++ b/chaos/common/direct_io/impl/ZMQDirectIOServer.h
@@ -1,6 +1,6 @@
 /*
  *	ZMQDirectIOServer.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/impl/ZMQSocketFeeder.cpp b/chaos/common/direct_io/impl/ZMQSocketFeeder.cpp
index 7119982b16176dc310593a23f98e4335e8da5da0..d14b0323bd181ebcef1359d4bcd6545143be14f8 100644
--- a/chaos/common/direct_io/impl/ZMQSocketFeeder.cpp
+++ b/chaos/common/direct_io/impl/ZMQSocketFeeder.cpp
@@ -1,6 +1,6 @@
 /*
  *	ZMQSocketFeeder.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/direct_io/impl/ZMQSocketFeeder.h b/chaos/common/direct_io/impl/ZMQSocketFeeder.h
index 44efa899dbf5f7956e442224d9ace1a8dfc6c0d3..7110557b14231c4631534000fe475d7c676d0c48 100644
--- a/chaos/common/direct_io/impl/ZMQSocketFeeder.h
+++ b/chaos/common/direct_io/impl/ZMQSocketFeeder.h
@@ -1,6 +1,6 @@
 /*
  *	ZMQSocketFeeder.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/dispatcher/AbstractCommandDispatcher.cpp b/chaos/common/dispatcher/AbstractCommandDispatcher.cpp
index 29f570c498b7ebad1e1275618c85e48b046377af..c76a77f49c68af6d713229bb1c50fa898554d2db 100644
--- a/chaos/common/dispatcher/AbstractCommandDispatcher.cpp
+++ b/chaos/common/dispatcher/AbstractCommandDispatcher.cpp
@@ -1,6 +1,6 @@
 /*
  *	AbstractCommandDispatcher.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/dispatcher/AbstractCommandDispatcher.h b/chaos/common/dispatcher/AbstractCommandDispatcher.h
index eae96773897d73f8f38e935f093465b320a0027f..bd7be6c1a091bc284d60c0d042d8496702508702 100644
--- a/chaos/common/dispatcher/AbstractCommandDispatcher.h
+++ b/chaos/common/dispatcher/AbstractCommandDispatcher.h
@@ -1,6 +1,6 @@
 /*
  *	AbstractCommandDispatcher.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/dispatcher/ChaosDispatcher.h b/chaos/common/dispatcher/ChaosDispatcher.h
index bfe67e1117d6d9b113609fe2638bdc4d8374fc3e..1e5968bef087bc05ce0363f16a3e69d03f0b71bc 100644
--- a/chaos/common/dispatcher/ChaosDispatcher.h
+++ b/chaos/common/dispatcher/ChaosDispatcher.h
@@ -1,6 +1,6 @@
 /*	
  *	ChaosDispatcher.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/dispatcher/DefaultCommandDispatcher.cpp b/chaos/common/dispatcher/DefaultCommandDispatcher.cpp
index 23c39ab3331d3e6da8c308ce95c183141ae07acd..2ab2a438535d55f2f3b4ab649a625d5967dbfead 100644
--- a/chaos/common/dispatcher/DefaultCommandDispatcher.cpp
+++ b/chaos/common/dispatcher/DefaultCommandDispatcher.cpp
@@ -1,6 +1,6 @@
 /*
  *	DefaultCommandDispatcher.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/dispatcher/DefaultCommandDispatcher.h b/chaos/common/dispatcher/DefaultCommandDispatcher.h
index 65e34e1ec0307e7748e4a856a2ada76c650ca523..920d300345856b14f12fc58f66462e7bcbde9894 100644
--- a/chaos/common/dispatcher/DefaultCommandDispatcher.h
+++ b/chaos/common/dispatcher/DefaultCommandDispatcher.h
@@ -1,6 +1,6 @@
 /*	
  *	DefaultCommandDispatcher.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/dispatcher/DefaultEventDispatcher.cpp b/chaos/common/dispatcher/DefaultEventDispatcher.cpp
index 22d9fe5c0be79cc5a7a196ce9c1bad56776b898d..df3e31b08a0e8ed1735b5282e3af0474cb9c7d71 100644
--- a/chaos/common/dispatcher/DefaultEventDispatcher.cpp
+++ b/chaos/common/dispatcher/DefaultEventDispatcher.cpp
@@ -1,6 +1,6 @@
 /*
  *	DefaultEventDispatcher.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/dispatcher/DefaultEventDispatcher.h b/chaos/common/dispatcher/DefaultEventDispatcher.h
index 42ff5e302d1aeb786e84fb25c156dea88a7bf6b9..c1f4ff32fb314d3e4863fcdfabbdab7d07d62499 100644
--- a/chaos/common/dispatcher/DefaultEventDispatcher.h
+++ b/chaos/common/dispatcher/DefaultEventDispatcher.h
@@ -1,6 +1,6 @@
 /*
  *	DefaultEventDispatcher.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/dispatcher/DomainActionsScheduler.cpp b/chaos/common/dispatcher/DomainActionsScheduler.cpp
index ceaa281d8aee99f741dd69d282e99be5a49e5f02..8048c3ca74146e564110052ffb7951b59a8c9ef7 100644
--- a/chaos/common/dispatcher/DomainActionsScheduler.cpp
+++ b/chaos/common/dispatcher/DomainActionsScheduler.cpp
@@ -1,6 +1,6 @@
 /*
  *	DomainActionsScheduler.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/dispatcher/DomainActionsScheduler.h b/chaos/common/dispatcher/DomainActionsScheduler.h
index 97c112552817553b4cbf907fe56dc0636a83a205..07471e12bedfbeda6e496683450b5431419b3743 100644
--- a/chaos/common/dispatcher/DomainActionsScheduler.h
+++ b/chaos/common/dispatcher/DomainActionsScheduler.h
@@ -1,6 +1,6 @@
 /*	
  *	DomainActionsScheduler.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/endian.h b/chaos/common/endian.h
index 6723ad045a8dce89d932ef3512d885e5675cc526..e2caf5e4ef04c27c955227ada0157aa724d0f2a7 100644
--- a/chaos/common/endian.h
+++ b/chaos/common/endian.h
@@ -1,6 +1,6 @@
 /*
  *	endian.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/event/AsioEventHandler.cpp b/chaos/common/event/AsioEventHandler.cpp
index afcf81ff700d718bbebf6657aaa440a719f6f08a..5832bff977001ba2ed006bcba02fed3cb131b7ff 100644
--- a/chaos/common/event/AsioEventHandler.cpp
+++ b/chaos/common/event/AsioEventHandler.cpp
@@ -1,6 +1,6 @@
 /*
  *	AsioEventHandler.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/event/AsioEventHandler.h b/chaos/common/event/AsioEventHandler.h
index 611d51405b40bfeb9bbb631455439e299105211e..50761a2f68172150e99c8c7c02cebb4a641980b1 100644
--- a/chaos/common/event/AsioEventHandler.h
+++ b/chaos/common/event/AsioEventHandler.h
@@ -1,6 +1,6 @@
 /*
  *	AsioEventHandler.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/event/AsioImplEventServer.cpp b/chaos/common/event/AsioImplEventServer.cpp
index 8df68e20c9aee5861a4fe95affabcabf1236b89e..598f6043eed94ee8b339d1b030c6bdbd5575aab3 100644
--- a/chaos/common/event/AsioImplEventServer.cpp
+++ b/chaos/common/event/AsioImplEventServer.cpp
@@ -1,6 +1,6 @@
 /*
  *	AsioImplEventServer.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/event/AsioImplEventServer.h b/chaos/common/event/AsioImplEventServer.h
index 2523ea07128fdf6360205616037526ad8172441d..e6cf81a1aa075573d8c02513b892afebbcc034a3 100644
--- a/chaos/common/event/AsioImplEventServer.h
+++ b/chaos/common/event/AsioImplEventServer.h
@@ -1,6 +1,6 @@
 /*
  *	AsioImplEventServer.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
@@ -38,7 +38,7 @@ namespace chaos {
         const short multicast_port = 30001;
         class AsioEventHandler;
         
-        //! Asio impleentation for the !CHOAS event server
+        //! Asio impleentation for the !CHAOS event server
         /*!
          
          */
diff --git a/chaos/common/event/EventForwarder.h b/chaos/common/event/EventForwarder.h
index 7dd435dbea74d8fe1d5a5800c6e9170c142b3c8a..66d142b6447124386760c68cc096fc38e3a5cfe1 100644
--- a/chaos/common/event/EventForwarder.h
+++ b/chaos/common/event/EventForwarder.h
@@ -1,6 +1,6 @@
 /*
  *	EventForwarding.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/event/EventServer.cpp b/chaos/common/event/EventServer.cpp
index cb5e01a983c332f53c8e0ce30a18c724447a2e28..953a6d5009ceddb3c03dc83f70415cc46dc29015 100644
--- a/chaos/common/event/EventServer.cpp
+++ b/chaos/common/event/EventServer.cpp
@@ -1,6 +1,6 @@
 /*
  *	EventServer.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/event/EventServer.h b/chaos/common/event/EventServer.h
index fe50307c6c23f0596a58be0c3cf82a75621f1ca0..3359e92f21ffb7d7eb8d4962be5473ec9efb0cbf 100644
--- a/chaos/common/event/EventServer.h
+++ b/chaos/common/event/EventServer.h
@@ -1,6 +1,6 @@
 /*
  *	EventServer.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/event/evt_desc/AlertEventDescriptor.cpp b/chaos/common/event/evt_desc/AlertEventDescriptor.cpp
index 3b086ac36c3287a2e7d4c5796ad651efca277882..a942ce72ab2c2ab6dc80872921ce77a6e90d5742 100644
--- a/chaos/common/event/evt_desc/AlertEventDescriptor.cpp
+++ b/chaos/common/event/evt_desc/AlertEventDescriptor.cpp
@@ -1,6 +1,6 @@
 /*
  *	AlertEventDescriptor.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/event/evt_desc/AlertEventDescriptor.h b/chaos/common/event/evt_desc/AlertEventDescriptor.h
index b0e48535cb5ae0f1a4b36a7ba9b687aac68fa6d9..9bfe91b5c226a6e8842609ccafd59dc467732029 100644
--- a/chaos/common/event/evt_desc/AlertEventDescriptor.h
+++ b/chaos/common/event/evt_desc/AlertEventDescriptor.h
@@ -1,6 +1,6 @@
 /*
  *	AlertEventDescriptor.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/event/evt_desc/EventDescriptor.cpp b/chaos/common/event/evt_desc/EventDescriptor.cpp
index 7d5a4c2717f088c0f095792c7d6a9c61906cac82..fdac22a930ceb952b16a8791a0e3b684cd8d9db5 100644
--- a/chaos/common/event/evt_desc/EventDescriptor.cpp
+++ b/chaos/common/event/evt_desc/EventDescriptor.cpp
@@ -1,6 +1,6 @@
 /*
  *	EventDescriptor.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/event/evt_desc/EventDescriptor.h b/chaos/common/event/evt_desc/EventDescriptor.h
index b3efaf71da39c1ab3f23a34ff72322a41f2d861c..76e85e4f4471317af29902aaa2158ff8b14ff51f 100644
--- a/chaos/common/event/evt_desc/EventDescriptor.h
+++ b/chaos/common/event/evt_desc/EventDescriptor.h
@@ -1,6 +1,6 @@
 /*
  *	EventDescriptor.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/exception/CException.h b/chaos/common/exception/CException.h
index 5d142d432cf3233142cb3af082fb18ee7cceae21..ffeece03012145fdc7eab064a5bfe7d6c066c1ad 100644
--- a/chaos/common/exception/CException.h
+++ b/chaos/common/exception/CException.h
@@ -1,6 +1,6 @@
 /*
  *	ControlException.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/fsm/FinalStateMachine.cpp b/chaos/common/fsm/FinalStateMachine.cpp
deleted file mode 100644
index 16e260ef4efb0e1a36f5df798061688e9f5979cd..0000000000000000000000000000000000000000
--- a/chaos/common/fsm/FinalStateMachine.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-//
-//  FinalStateMachine.cpp
-//  CHAOSFramework
-//
-//  Created by Claudio Bisegni on 7/29/13.
-//  Copyright (c) 2013 INFN. All rights reserved.
-//
-
-#include "FinalStateMachine.h"
diff --git a/chaos/common/fsm/FinalStateMachine.h b/chaos/common/fsm/FinalStateMachine.h
deleted file mode 100644
index 27f3f93e8d5f8d280bfba0f82edacb02c72e752b..0000000000000000000000000000000000000000
--- a/chaos/common/fsm/FinalStateMachine.h
+++ /dev/null
@@ -1,80 +0,0 @@
-//
-//  FinalStateMachine.h
-//  CHAOSFramework
-//
-//  Created by Claudio Bisegni on 7/29/13.
-//  Copyright (c) 2013 INFN. All rights reserved.
-//
-
-#ifndef __CHAOSFramework__FinalStateMachine__
-#define __CHAOSFramework__FinalStateMachine__
-
-// back-end
-#include <boost/msm/back/state_machine.hpp>
-//front-end
-#include <boost/msm/front/state_machine_def.hpp>
-#include <boost/msm/front/functor_row.hpp>
-#include <boost/msm/front/euml/common.hpp>
-// for And_ operator
-#include <boost/msm/front/euml/operator.hpp>
-namespace chaos {
-    
-    namespace fsm {
-        BOOST_MSM_EUML_EVENT(play)
-        
-        // front-end: define the FSM structure
-        struct id_states_machine : public boost::msm::front::state_machine_def<id_states_machine> {
-            
-            
-            // The list of FSM states
-            struct Deinitilized : public boost::msm::front::state<>
-            {
-                // every (optional) entry/exit methods get the event passed.
-                template <class Event,class FSM>
-                void on_entry(Event const&,FSM& ) {std::cout << "entering: Deinitilized" << std::endl;}
-                template <class Event,class FSM>
-                void on_exit(Event const&,FSM& ) {std::cout << "leaving: Deinitilized" << std::endl;}
-                struct internal_guard_fct
-                {
-                    template <class EVT,class FSM,class SourceState,class TargetState>
-                    bool operator()(EVT const& evt ,FSM&,SourceState& ,TargetState& )
-                    {
-                        std::cout << "Deinitilized::internal_transition_table guard\n";
-                        return false;
-                    }
-                };
-                struct internal_action_fct
-                {
-                    template <class EVT,class FSM,class SourceState,class TargetState>
-                    void operator()(EVT const& ,FSM& ,SourceState& ,TargetState& )
-                    {
-                        std::cout << "Deinitilized::internal_transition_table action" << std::endl;
-                    }
-                };
-                // Transition table for Empty
-                struct internal_transition_table : boost::mpl::vector< Internal < EventType::initialize, internal_action_fct ,internal_guard_fct> > {};
-            };
-            
-            struct Initialized : public boost::msm::front::state<>
-            {
-                template <class Event,class FSM>
-                void on_entry(Event const& ,FSM&) {std::cout << "entering: Initialized" << std::endl;}
-                template <class Event,class FSM>
-                void on_exit(Event const&,FSM& ) {std::cout << "leaving: Initialized" << std::endl;}
-            };
-            
-            // the initial state of the player SM. Must be defined
-            typedef Deinitilized initial_state;
-            
-            typedef boost::msm::front::Row <  Deinitilized   ,  EventType::initialize  , Initialized, boost::msm::front::none , boost::msm::front::none > deinit_init_row;
-            typedef boost::msm::front::Row <  Initialized   ,  EventType::deinitialize  , Deinitilized, boost::msm::front::none , boost::msm::front::none > init_deinit_row;
-            
-            // Transition table for initialization services
-            struct transition_table : boost::mpl::vector<
-            deinit_init_row,
-            init_deinit_row > {};
-        };
-    }
-}
-
-#endif /* defined(__CHAOSFramework__FinalStateMachine__) */
diff --git a/chaos/common/general/Configurable.h b/chaos/common/general/Configurable.h
index 392b7601ba237483985d82b8e89f7d9aeac1a0dd..b30f2a59c5764e22d190b05604b2eae3ad30e767 100644
--- a/chaos/common/general/Configurable.h
+++ b/chaos/common/general/Configurable.h
@@ -1,6 +1,6 @@
 /*	
  *	Configurable.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/global.h b/chaos/common/global.h
index a505c7e5f58bb67d6a4e6652dd81d17bdbda4c0b..852d8ef439bd32f5d79c2319ac1166019268ff2a 100644
--- a/chaos/common/global.h
+++ b/chaos/common/global.h
@@ -1,6 +1,6 @@
 /*	
  *	global.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
@@ -24,7 +24,7 @@
  *
  * \section intro_sec Introduction
  *
- * !CHOAS is a new idea on Control System software architecture, more information cam be found
+ * !CHAOS is a new idea on Control System software architecture, more information cam be found
  * on http://chaos.infn.it/
  *
  * \section install_sec Installation
diff --git a/chaos/common/io/IODataDriver.h b/chaos/common/io/IODataDriver.h
index a262623d456f509a75cff774153ad7399d94b895..57dd5f578ac36ad72b5dab0286ecd1b75003645e 100644
--- a/chaos/common/io/IODataDriver.h
+++ b/chaos/common/io/IODataDriver.h
@@ -1,6 +1,6 @@
 /*
  *	IODataDriver.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/io/IODirectIODriver.cpp b/chaos/common/io/IODirectIODriver.cpp
index 4ec6c33aba994a22f655cec66faf80124622604a..e5b02b8e129b3ea6cd03738ffb9eabaeb0a269ec 100644
--- a/chaos/common/io/IODirectIODriver.cpp
+++ b/chaos/common/io/IODirectIODriver.cpp
@@ -1,6 +1,6 @@
 /*
  *	IODirectIODriver.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/io/IODirectIODriver.h b/chaos/common/io/IODirectIODriver.h
index 2d433737e63ad161655ee9e6a1302df2a62058b4..bacda7fbbcbc8361bc33f211a380f5f23a38258a 100644
--- a/chaos/common/io/IODirectIODriver.h
+++ b/chaos/common/io/IODirectIODriver.h
@@ -1,6 +1,6 @@
 /*
  *	IODirectIODriver.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/io/IOMemcachedIODriver.cpp b/chaos/common/io/IOMemcachedIODriver.cpp
index b3056ffd25ef5b86a07d2df841e686c48e2a7804..c3a240ee97c657fb2b536818bfaa321b847f879e 100644
--- a/chaos/common/io/IOMemcachedIODriver.cpp
+++ b/chaos/common/io/IOMemcachedIODriver.cpp
@@ -1,6 +1,6 @@
 /*
  *	IOMemcachedIODriver.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/io/IOMemcachedIODriver.h b/chaos/common/io/IOMemcachedIODriver.h
index 5daeb0cec6cace3973e31fd81ae498511ff1cfdd..73246e06311d7842f727aff1599ca2c992d70679 100644
--- a/chaos/common/io/IOMemcachedIODriver.h
+++ b/chaos/common/io/IOMemcachedIODriver.h
@@ -1,6 +1,6 @@
 /*
  *	IOMemcachedIODriver.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/memory/ManagedMemory.cpp b/chaos/common/memory/ManagedMemory.cpp
index 3a61aad174efef2b895601695a7100ae96a99391..913f5a9f072605c06b6949e71633a1011a430c64 100644
--- a/chaos/common/memory/ManagedMemory.cpp
+++ b/chaos/common/memory/ManagedMemory.cpp
@@ -1,6 +1,6 @@
 /*
  *	ManagedMemory.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Assembled by Bisegni Claudio getting the code from http://www.memcached.org
  *
  *    	Copyright 2013 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/memory/ManagedMemory.h b/chaos/common/memory/ManagedMemory.h
index eaec5cefa3311651d150dc9e02daf12b873c8273..2bbf2ca3d1f0fe636508542d207ad361dea2d3ba 100644
--- a/chaos/common/memory/ManagedMemory.h
+++ b/chaos/common/memory/ManagedMemory.h
@@ -1,6 +1,6 @@
 /*
  *	ManagedMemory.h
- *	!CHOAS
+ *	!CHAOS
  *	Assembled by Bisegni Claudio getting the code from http://www.memcached.org
  *  Update by Bisegni Claudio.
  *
diff --git a/chaos/common/message/DeviceMessageChannel.cpp b/chaos/common/message/DeviceMessageChannel.cpp
index a20754e0fefbca270ee672851db1b25b86243f25..ff3e68cbc72991111ed55ce760461c2c88cad750 100644
--- a/chaos/common/message/DeviceMessageChannel.cpp
+++ b/chaos/common/message/DeviceMessageChannel.cpp
@@ -1,6 +1,6 @@
 /*	
  *	DeviceMessageChannel.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/message/DeviceMessageChannel.h b/chaos/common/message/DeviceMessageChannel.h
index 43bfa117f2c0ff38a77b774c738596a6bb3ddbdd..d2a54b1e3fcd54e4f6717a7c563efa17b7f7ce0c 100644
--- a/chaos/common/message/DeviceMessageChannel.h
+++ b/chaos/common/message/DeviceMessageChannel.h
@@ -1,6 +1,6 @@
 /*
  *	DeviceMessageChannel.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/message/MDSMessageChannel.cpp b/chaos/common/message/MDSMessageChannel.cpp
index bfeae75e642008ea22b26f4f0118e4efc3bcd2fc..712373fa697f15ddb9ca10959647e1de8b80e9f6 100644
--- a/chaos/common/message/MDSMessageChannel.cpp
+++ b/chaos/common/message/MDSMessageChannel.cpp
@@ -1,6 +1,6 @@
 /*
  *	MDSMessageChannel.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/message/MDSMessageChannel.h b/chaos/common/message/MDSMessageChannel.h
index 8d9d7fcf315e9dd467db2270651b1c12432b4bfc..e66ab44b80c001500084eef6220534e50539f4d9 100644
--- a/chaos/common/message/MDSMessageChannel.h
+++ b/chaos/common/message/MDSMessageChannel.h
@@ -1,6 +1,6 @@
 /*
  *	MDSMessageChannel.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/message/MessageChannel.cpp b/chaos/common/message/MessageChannel.cpp
index b0c9d702a8d1125f3a75e19b570983781ff9e6d0..b9297616d29ffb1cc1f32d76bd6af8ba709415f5 100644
--- a/chaos/common/message/MessageChannel.cpp
+++ b/chaos/common/message/MessageChannel.cpp
@@ -1,6 +1,6 @@
 /*
  *	MessageChannel.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
@@ -77,7 +77,7 @@ CDataWrapper *MessageChannel::response(CDataWrapper *response_data, bool& detach
     uint32_t request_id = response_data->getInt32Value(RpcActionDefinitionKey::CS_CMDM_MESSAGE_ID);
     try {
         //lock the map
-        boost::shared_lock< boost::shared_mutex > lock(mutext_answer_managment);
+         boost::lock_guard<boost::mutex> lock(mutext_answer_managment);
         
         DEBUG_CODE(MCDBG_ << "Received answer with id:" << request_id;)
         
@@ -88,13 +88,10 @@ CDataWrapper *MessageChannel::response(CDataWrapper *response_data, bool& detach
             DEBUG_CODE(MCDBG_ << "We have promises for id:" << request_id);
             
             //set the valu ein promises
-            p_iter->second->set_value(response_data);
+            p_iter->second->set_value(FuturePromiseData(response_data));
             
             //delete the promises after have been set the data
             map_request_id_promises.erase(p_iter);
-            
-            //we have the promises
-            lock.unlock();
         } else {
             DEBUG_CODE(MCDBG_ << "No promises found for id:" << request_id;)
         }
@@ -201,15 +198,15 @@ std::auto_ptr<MessageRequestFuture> MessageChannel::sendRequestWithFuture(const
     data_pack->addStringValue(RpcActionDefinitionKey::CS_CMDM_ANSWER_DOMAIN, channel_reponse_domain);
     data_pack->addStringValue(RpcActionDefinitionKey::CS_CMDM_ANSWER_ACTION, "response");
     //prepare the promises and future
-    boost::shared_ptr<boost::promise<common::data::CDataWrapper*> > promises_ptr(new boost::promise<common::data::CDataWrapper*>());
+    boost::shared_ptr<MessageFuturePromise> promise(new MessageFuturePromise());
     
     //lock the map
-    boost::shared_lock< boost::shared_mutex > lock(mutext_answer_managment);
+    boost::lock_guard<boost::mutex> lock(mutext_answer_managment);
     //insert into themap the promises
-    map_request_id_promises.insert(make_pair(current_request_id, promises_ptr));
+    map_request_id_promises.insert(make_pair(current_request_id, promise));
     //get the future
     result.reset(new  MessageRequestFuture(current_request_id,
-                                           promises_ptr->get_future()));
+                                           promise->get_future()));
     //if(async) return result;
     //submit the request
     broker->submiteRequest(remote_host,
diff --git a/chaos/common/message/MessageChannel.h b/chaos/common/message/MessageChannel.h
index 00f83a1e137998582db7206c8a9a8e39cbfe6429..50a0d6decb5e44e135b47915942aac1ff5861b03 100644
--- a/chaos/common/message/MessageChannel.h
+++ b/chaos/common/message/MessageChannel.h
@@ -1,6 +1,6 @@
 /*
  *	MessageChannel.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
@@ -34,6 +34,7 @@
 #include <chaos/common/network/CNodeNetworkAddress.h>
 #include <chaos/common/network/NetworkBroker.h>
 
+#include <boost/smart_ptr.hpp>
 #include <boost/function.hpp>
 #include <boost/thread.hpp>
 #include <boost/thread/future.hpp>
@@ -68,8 +69,10 @@ if(x->hasKey(RpcActionDefinitionKey::CS_CMDM_ACTION_SUBMISSION_ERROR_DOMAIN)) la
 if(x->hasKey(RpcActionDefinitionKey::CS_CMDM_ACTION_MESSAGE)) x->getCSDataValue(RpcActionDefinitionKey::CS_CMDM_ACTION_MESSAGE);
 
 			/*! \} */
-            typedef map<chaos::common::utility::atomic_int_type, boost::shared_ptr<boost::promise<common::data::CDataWrapper*> > >              MapPromises;
-            typedef map<chaos::common::utility::atomic_int_type, boost::shared_ptr<boost::promise<common::data::CDataWrapper*> > >::iterator    MapPromisesIterator;
+            typedef boost::shared_ptr<common::data::CDataWrapper>                                                       FuturePromiseData;
+            typedef boost::promise< FuturePromiseData >                                                             MessageFuturePromise;
+            typedef map<chaos::common::utility::atomic_int_type, boost::shared_ptr<MessageFuturePromise> >              MapPromises;
+            typedef map<chaos::common::utility::atomic_int_type, boost::shared_ptr<MessageFuturePromise> >::iterator    MapPromisesIterator;
 			//! MessageChannel
 			/*!
 			 This is the basic channel for comunicate with other chaos rpc server. It can be instantiated only by
@@ -89,7 +92,7 @@ if(x->hasKey(RpcActionDefinitionKey::CS_CMDM_ACTION_MESSAGE)) x->getCSDataValue(
                 boost::atomic<uint32_t> channel_request_id_counter;
 
 				//! Mutex for managing the maps manipulation
-				boost::shared_mutex mutext_answer_managment;
+				boost::mutex mutext_answer_managment;
 
                 MapPromises map_request_id_promises;
 
diff --git a/chaos/common/message/MessageRequestFuture.cpp b/chaos/common/message/MessageRequestFuture.cpp
index 4cd8d7f3dc108df55b402736dbb4c4e56ab1d279..1fd094a5061f26c695d4c61b1ce5b4326f5f6528 100644
--- a/chaos/common/message/MessageRequestFuture.cpp
+++ b/chaos/common/message/MessageRequestFuture.cpp
@@ -1,6 +1,6 @@
 /*
  *	MessageRequestFuture.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
@@ -19,11 +19,15 @@
  */
 #include <chaos/common/message/MessageRequestFuture.h>
 
+#define MRF_INFO INFO_LOG(MessageRequestFuture)
+#define MRF_DBG DBG_LOG(MessageRequestFuture)
+#define MRF_ERR ERR_LOG(MessageRequestFuture)
+
 using namespace chaos::common::message;
 
-    //!private constructor
+//!private constructor
 MessageRequestFuture::MessageRequestFuture(chaos::common::utility::atomic_int_type _request_id,
-                                           boost::unique_future<chaos::common::data::CDataWrapper*> _future):
+                                           boost::unique_future< boost::shared_ptr<chaos::common::data::CDataWrapper> > _future):
 request_id(_request_id),
 future(_future),
 request_result(NULL),
@@ -31,38 +35,41 @@ error_code(-1),
 error_message(""),
 error_domain(""),
 local_result(false) {
-
+    
 }
-    //!private destructor
+//!private destructor
 MessageRequestFuture::~MessageRequestFuture() {
-
 }
 
 bool MessageRequestFuture::wait(int32_t timeout_in_milliseconds) {
-    if(request_result.get()) {
-        return true;
-    }
-    //! whait for result
-    if(timeout_in_milliseconds >= 0) {
-        future.wait_for(boost::chrono::milliseconds(timeout_in_milliseconds));
-    } else {
-        future.wait();
-    }
-
-    if(future.is_ready() &&
-                future.has_value()) {
-        MRF_PARSE_CDWPTR_RESULT(future.get())
-        return true;
-    } else {
-        return false;
+    try{
+        if(request_result.get()) {
+            return true;
+        }
+        //! whait for result
+        if(timeout_in_milliseconds >= 0) {
+            future.wait_for(boost::chrono::milliseconds(timeout_in_milliseconds));
+        } else {
+            future.wait();
+        }
+        
+        if(future.is_ready() &&
+           future.has_value()) {
+            MRF_PARSE_CDWPTR_RESULT(future.get())
+            return true;
+        } else {
+            return false;
+        }
+    } catch (boost::broken_promise &e) {
+        MRF_ERR << "Broken pormisess error:" << e.what();
     }
 }
 
-    //! try to get the result waiting for a determinate period of time
+//! try to get the result waiting for a determinate period of time
 chaos::common::data::CDataWrapper *MessageRequestFuture::getResult() {
-        //! wait for result
+    //! wait for result
     return request_result.get();
-
+    
 }
 
 chaos::common::data::CDataWrapper *MessageRequestFuture::detachResult() {
diff --git a/chaos/common/message/MessageRequestFuture.h b/chaos/common/message/MessageRequestFuture.h
index 10061bdb6e90d37b8724e309b1e5ff4e00c97057..f5d52ff0a609c92a2cc69a012e18ea38f07011a6 100644
--- a/chaos/common/message/MessageRequestFuture.h
+++ b/chaos/common/message/MessageRequestFuture.h
@@ -1,6 +1,6 @@
 /*
  *	MessageRequestFuture.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
@@ -24,6 +24,7 @@
 #include <chaos/common/data/CDataWrapper.h>
 #include <chaos/common/utility/Atomic.h>
 
+#include <boost/smart_ptr.hpp>
 #include <boost/thread/future.hpp>
 
 #define MRF_PARSE_CDWPTR_RESULT(x) \
@@ -54,9 +55,9 @@ namespace chaos {
                 chaos::common::utility::atomic_int_type request_id;
 
                     //shared future for the answer
-                boost::shared_future<chaos::common::data::CDataWrapper*> future;
+                boost::shared_future< boost::shared_ptr<chaos::common::data::CDataWrapper> > future;
 
-                    //! the result fo the request
+                    //! the result for the request
                 std::auto_ptr<chaos::common::data::CDataWrapper> request_result;
 
                     //!error code
@@ -75,7 +76,7 @@ namespace chaos {
 
                     //!private constructor
                 MessageRequestFuture(chaos::common::utility::atomic_int_type _request_id,
-                                     boost::unique_future<chaos::common::data::CDataWrapper*> _future);
+                                     boost::unique_future< boost::shared_ptr<chaos::common::data::CDataWrapper> > _future);
 
             public:
                 //!private destructor
diff --git a/chaos/common/message/MultiAddressMessageChannel.cpp b/chaos/common/message/MultiAddressMessageChannel.cpp
index dcb4404ddf58e709e0e0f2473211f53886db04b4..42e60c2b6858a6fda0f7fe46727aeccba95b4dac 100644
--- a/chaos/common/message/MultiAddressMessageChannel.cpp
+++ b/chaos/common/message/MultiAddressMessageChannel.cpp
@@ -1,6 +1,6 @@
 /*
  *	MultiAddressMessageChannel.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
@@ -68,6 +68,7 @@ MultiAddressMessageChannel::~MultiAddressMessageChannel() {
 }
 
 void MultiAddressMessageChannel::retryOfflineServer(bool force) {
+    boost::lock_guard<boost::mutex> l(mutex_server_usage);
     uint64_t now = TimingUtil::getTimeStamp();
     if(force||
        ((now - last_retry) > RETRY_DELAY)) {
@@ -194,6 +195,7 @@ std::auto_ptr<MultiAddressMessageRequestFuture> MultiAddressMessageChannel::send
                                                                                                   const std::string& action_name,
                                                                                                   CDataWrapper *request_pack,
                                                                                                   int32_t request_timeout) {
+    retryOfflineServer(true);
     return std::auto_ptr<MultiAddressMessageRequestFuture>(new MultiAddressMessageRequestFuture(this,
                                                                                                 action_domain,
                                                                                                 action_name,
diff --git a/chaos/common/message/MultiAddressMessageChannel.h b/chaos/common/message/MultiAddressMessageChannel.h
index 7e4fd552c48f9f8e5d8ca77f3bada24b15ba1bd4..3214ef90e59f4b1fb8f14f10b18f477b4e1c74ee 100644
--- a/chaos/common/message/MultiAddressMessageChannel.h
+++ b/chaos/common/message/MultiAddressMessageChannel.h
@@ -1,6 +1,6 @@
 /*
  *	MultiAddressMessageChannel.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
@@ -23,6 +23,8 @@
 #include <chaos/common/message/MultiAddressMessageRequestFuture.h>
 #include <chaos/common/network/URLServiceFeeder.h>
 
+#include <boost/thread.hpp>
+
 #include <map>
 #include <string>
 #include <set>
@@ -70,6 +72,8 @@ namespace chaos {
             private chaos::common::network::URLServiceFeederHandler {
                 friend class chaos::common::network::NetworkBroker;
                 friend class chaos::common::message::MultiAddressMessageRequestFuture;
+                    //!mutex for the managment of rescheduling server
+                boost::mutex mutex_server_usage;
 
                 uint64_t last_retry;
                     //!list of the offline server index
diff --git a/chaos/common/message/MultiAddressMessageRequestFuture.cpp b/chaos/common/message/MultiAddressMessageRequestFuture.cpp
index 4f58f2280bdc2534d23aa1a206e3507d49815ddd..325cf67d6c53d5a049b5f69fac83e2e61df36a2a 100644
--- a/chaos/common/message/MultiAddressMessageRequestFuture.cpp
+++ b/chaos/common/message/MultiAddressMessageRequestFuture.cpp
@@ -1,6 +1,6 @@
 /*
  *	MultiAddressMessageRequestFuture.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/message/MultiAddressMessageRequestFuture.h b/chaos/common/message/MultiAddressMessageRequestFuture.h
index 9c9dead8ef7b17300db28aae454ef8ccdff6f4fc..d0178a6e9c712eff73a94b84c8c8997291938750 100644
--- a/chaos/common/message/MultiAddressMessageRequestFuture.h
+++ b/chaos/common/message/MultiAddressMessageRequestFuture.h
@@ -1,6 +1,6 @@
 /*
  *	MultiAddressMessageRequestFuture.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/message/NodeMessageChannel.cpp b/chaos/common/message/NodeMessageChannel.cpp
index 43b93a68bbfbeafbbb631977878d4c6503d8cd70..29efd093cf683d72bb512f79cd33ffebbf2eff31 100644
--- a/chaos/common/message/NodeMessageChannel.cpp
+++ b/chaos/common/message/NodeMessageChannel.cpp
@@ -1,6 +1,6 @@
 /*
  *	NodeMessageChannel.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/message/NodeMessageChannel.h b/chaos/common/message/NodeMessageChannel.h
index baef6df6b59b65fdf11e59e772be96f858fef668..02eaaddf6d4f9285421306e15d82e2c22885a92d 100644
--- a/chaos/common/message/NodeMessageChannel.h
+++ b/chaos/common/message/NodeMessageChannel.h
@@ -1,6 +1,6 @@
 /*
  *	NodeMessageChannel.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/message/PerformanceNodeChannel.cpp b/chaos/common/message/PerformanceNodeChannel.cpp
index 8c241be5ae179578e53d9da0841c3e35c693e6fd..62e90b1bbe6f1f4b63b421fa3fb7f99661122fb7 100644
--- a/chaos/common/message/PerformanceNodeChannel.cpp
+++ b/chaos/common/message/PerformanceNodeChannel.cpp
@@ -1,6 +1,6 @@
 /*
  *	PerformanceNodeChannel.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/message/PerformanceNodeChannel.h b/chaos/common/message/PerformanceNodeChannel.h
index 2c40a889f75c905ce6118d12de1d788a3863888d..bccae249f9876b09d0ed4788c92203952abd65f0 100644
--- a/chaos/common/message/PerformanceNodeChannel.h
+++ b/chaos/common/message/PerformanceNodeChannel.h
@@ -1,6 +1,6 @@
 /*
  *	PerformanceNodeChannel.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/network/CNodeNetworkAddress.h b/chaos/common/network/CNodeNetworkAddress.h
index b339228d47420af29a029205bff2ab4767ab3d98..3293fe4b13e3cd7c85744628173601dd7c6f0165 100644
--- a/chaos/common/network/CNodeNetworkAddress.h
+++ b/chaos/common/network/CNodeNetworkAddress.h
@@ -1,6 +1,6 @@
 /*
  *	NetworkAddress.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/network/NetworkBroker.cpp b/chaos/common/network/NetworkBroker.cpp
index ef9fd54f720a6674ece3f09bb7b4bd8e0dac7243..bbc7b8fc37e34241907d0b55cf848f28f7b1d387 100644
--- a/chaos/common/network/NetworkBroker.cpp
+++ b/chaos/common/network/NetworkBroker.cpp
@@ -1,6 +1,6 @@
 /*
  *	NetworkBroker.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/network/NetworkBroker.h b/chaos/common/network/NetworkBroker.h
index f56f9dbbf17fbf77f02b74852642c9e4662f3975..3532e85648e6465ebf3d68a0363f8400c0b57c99 100644
--- a/chaos/common/network/NetworkBroker.h
+++ b/chaos/common/network/NetworkBroker.h
@@ -1,6 +1,6 @@
 /*
  *	NetworkBroker.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/network/NetworkForwardInfo.h b/chaos/common/network/NetworkForwardInfo.h
index 632653a733153ee9fdc7cd493374cc3197440f8b..871c0459c477ac89b94d6d888ad43bed8380f0a5 100644
--- a/chaos/common/network/NetworkForwardInfo.h
+++ b/chaos/common/network/NetworkForwardInfo.h
@@ -1,6 +1,6 @@
 /*
  *	NetworkForwardInfo.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/network/PerformanceManagment.cpp b/chaos/common/network/PerformanceManagment.cpp
index ea52810ca1acf6a8d8e6e616af877418441f9f0e..97d41165cdcc6d037541aa7c01f8475088abb770 100644
--- a/chaos/common/network/PerformanceManagment.cpp
+++ b/chaos/common/network/PerformanceManagment.cpp
@@ -1,6 +1,6 @@
 /*
  *	PerformanceManagment.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/network/PerformanceManagment.h b/chaos/common/network/PerformanceManagment.h
index 2cccce8fd96af15103421dc44559536c16f962ff..007f8cdb836f9ba3255131990f3686766e907701 100644
--- a/chaos/common/network/PerformanceManagment.h
+++ b/chaos/common/network/PerformanceManagment.h
@@ -1,6 +1,6 @@
 /*
  *	PerformanceManagment.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/network/URL.cpp b/chaos/common/network/URL.cpp
index 0f9ec2be05aa0c148ce7a8aa790f66412d8c4a89..699a8678224a2c51e5b4535299d45d53c62679fa 100644
--- a/chaos/common/network/URL.cpp
+++ b/chaos/common/network/URL.cpp
@@ -1,6 +1,6 @@
 /*
  *	URL.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/network/URL.h b/chaos/common/network/URL.h
index 7a90ca7b3960f30657144789f70c553e65f16930..4e3cf78b81b6710c9939a5c75861aff127eed63c 100644
--- a/chaos/common/network/URL.h
+++ b/chaos/common/network/URL.h
@@ -1,6 +1,6 @@
 /*
  *	URL.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/network/URLServiceFeeder.cpp b/chaos/common/network/URLServiceFeeder.cpp
index 98adf073f7614736b5c31606fac64b03853c97b0..fbf25a6374113960f47ac9f7014109033f6cc1ac 100644
--- a/chaos/common/network/URLServiceFeeder.cpp
+++ b/chaos/common/network/URLServiceFeeder.cpp
@@ -1,6 +1,6 @@
 /*
  *	URLServiceFeeder.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/network/URLServiceFeeder.h b/chaos/common/network/URLServiceFeeder.h
index 0a36fb7238d68518645a29335557be564f380712..037efc8b20e893bb87e8d09d35abd1dbb2e4de2d 100644
--- a/chaos/common/network/URLServiceFeeder.h
+++ b/chaos/common/network/URLServiceFeeder.h
@@ -1,6 +1,6 @@
 /*
  *	URLServiceFeeder.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/plugin/AbstractPlugin.cpp b/chaos/common/plugin/AbstractPlugin.cpp
index 5083dcb4ef3f536e00fa5ff3b3df8985b6d9b988..1dc16a5bf9233943298d982f0596d56469d60fb8 100644
--- a/chaos/common/plugin/AbstractPlugin.cpp
+++ b/chaos/common/plugin/AbstractPlugin.cpp
@@ -1,6 +1,6 @@
 /*
  *	AbstractPlugin.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2013 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/plugin/AbstractPlugin.h b/chaos/common/plugin/AbstractPlugin.h
index d986f1c0a4811cf1489020205acd339138dd3c83..8876f606dbd56dcc228c7bc83108775e3aa2e8db 100644
--- a/chaos/common/plugin/AbstractPlugin.h
+++ b/chaos/common/plugin/AbstractPlugin.h
@@ -1,6 +1,6 @@
 /*
  *	AbstractPlugin.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2013 INFN, National Institute of Nuclear Physics
@@ -28,7 +28,7 @@
 namespace chaos {
     namespace common {
         
-        //! Name space for grupping class for the plugin managment system of !CHOAS framework
+        //! Name space for grupping class for the plugin managment system of !CHAOS framework
         namespace plugin {
             
 
diff --git a/chaos/common/plugin/PluginDefinition.h b/chaos/common/plugin/PluginDefinition.h
index dd6aa8a8ff31f72a37e99faf9ce749078459594c..de521742a6608221de33c366ce99ecd981c6b81e 100644
--- a/chaos/common/plugin/PluginDefinition.h
+++ b/chaos/common/plugin/PluginDefinition.h
@@ -1,6 +1,6 @@
 /*
  *	PluginDefinition.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2013 INFN, National Institute of Nuclear Physics
@@ -29,7 +29,7 @@
 namespace chaos {
     namespace common {
         
-        //! Name space for grupping class for the plugin managment system of !CHOAS framework
+        //! Name space for grupping class for the plugin managment system of !CHAOS framework
         namespace plugin {
 			
             //! Define a class as plugin
diff --git a/chaos/common/plugin/PluginDiscover.h b/chaos/common/plugin/PluginDiscover.h
index 9a188e0c31fa1c0d65d829ea6bdaa3853cc16315..b493a00285ef7183022023fd9816510dd60987b9 100644
--- a/chaos/common/plugin/PluginDiscover.h
+++ b/chaos/common/plugin/PluginDiscover.h
@@ -1,6 +1,6 @@
 /*
  *	PluginDiscover.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2013 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/plugin/PluginInspector.h b/chaos/common/plugin/PluginInspector.h
index f437c9e9514a819775ea41887ede0acc6990fe5a..7f15598d2a964f9c16fc517bd19259c564432fd7 100644
--- a/chaos/common/plugin/PluginInspector.h
+++ b/chaos/common/plugin/PluginInspector.h
@@ -1,6 +1,6 @@
 /*
  *	PluginInspector.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2013 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/plugin/PluginLoader.cpp b/chaos/common/plugin/PluginLoader.cpp
index 094b9fe54966a95a3ae6e8d560db0488393136f3..07c8b55691475aea731d232d3438827340d0a6ab 100644
--- a/chaos/common/plugin/PluginLoader.cpp
+++ b/chaos/common/plugin/PluginLoader.cpp
@@ -1,6 +1,6 @@
 /*
  *	PluginLoader.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2013 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/plugin/PluginLoader.h b/chaos/common/plugin/PluginLoader.h
index 2b4954b3498fe314027fd210a321691d1c87d6eb..d8556ec3884cac7ef7f9c196be4ff2706ad647c7 100644
--- a/chaos/common/plugin/PluginLoader.h
+++ b/chaos/common/plugin/PluginLoader.h
@@ -1,6 +1,6 @@
 /*
  *	PluginLoader.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2013 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/pool/CPoolMemory.h b/chaos/common/pool/CPoolMemory.h
index c2a319d64e5acbe1a52fc47e5de883f470f2ce47..70f2e68f43d2f63c714eb506efa7714b6dea1f8a 100644
--- a/chaos/common/pool/CPoolMemory.h
+++ b/chaos/common/pool/CPoolMemory.h
@@ -1,6 +1,6 @@
 /*	
  *	CPoolMemory.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/pool/CPoolMemoryObject.h b/chaos/common/pool/CPoolMemoryObject.h
index 83ba0bb513b42f9a20197c65e6384f95f628455e..98100a9a6d7381d478ed2e42e9cc68b17d3dfdb4 100644
--- a/chaos/common/pool/CPoolMemoryObject.h
+++ b/chaos/common/pool/CPoolMemoryObject.h
@@ -1,6 +1,6 @@
 /*	
  *	CPoolMemoryObject.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/pool/ChaosPool.h b/chaos/common/pool/ChaosPool.h
index 514c8513e76a106eba4f9126540cacbc5f0ff440..10e5af746cf3ea22de1dfaa03a67cca8f342ee57 100644
--- a/chaos/common/pool/ChaosPool.h
+++ b/chaos/common/pool/ChaosPool.h
@@ -1,6 +1,6 @@
 /*	
  *	ChaosPool.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/pqueue/CObjectProcessingPriorityQueue.h b/chaos/common/pqueue/CObjectProcessingPriorityQueue.h
index f1c40bc850286aa788544408ff914501048a4ce1..6f4cecb9231bd2b7559f97e0b137bdb871ddec3e 100644
--- a/chaos/common/pqueue/CObjectProcessingPriorityQueue.h
+++ b/chaos/common/pqueue/CObjectProcessingPriorityQueue.h
@@ -1,6 +1,6 @@
 /*
  *	CObjectProcessingPriorityQueue.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/pqueue/CObjectProcessingQueue.h b/chaos/common/pqueue/CObjectProcessingQueue.h
index cab14c7d4eb9eec8c3ab161726c9f68aa4e8c6f9..cf3a56921b99098f1e897afb9224d204457ec446 100644
--- a/chaos/common/pqueue/CObjectProcessingQueue.h
+++ b/chaos/common/pqueue/CObjectProcessingQueue.h
@@ -1,6 +1,6 @@
 /*
  *	CObjectProcessingQueue.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/pqueue/CObjectProcessingQueueListener.h b/chaos/common/pqueue/CObjectProcessingQueueListener.h
index 5a4b6386887d006af256638fdebe190df65bc5c1..9f694bfc926c7384de2ce8c42d89cc8c582b2256 100644
--- a/chaos/common/pqueue/CObjectProcessingQueueListener.h
+++ b/chaos/common/pqueue/CObjectProcessingQueueListener.h
@@ -1,6 +1,6 @@
 /*	
  *	CObjectProcessingQueueListener.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/pqueue/ChaosProcessingQueue.h b/chaos/common/pqueue/ChaosProcessingQueue.h
index 5b94feda977d7f155a8a5ef43338f3e5ce1adcd8..c32c605ac71595469d1c078995a03c89bc68420b 100644
--- a/chaos/common/pqueue/ChaosProcessingQueue.h
+++ b/chaos/common/pqueue/ChaosProcessingQueue.h
@@ -1,6 +1,6 @@
 /*	
  *	pqueue.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/property/Property.h b/chaos/common/property/Property.h
new file mode 100644
index 0000000000000000000000000000000000000000..a53bf332d54d7854a66f88979bb70cd50fc1dbdb
--- /dev/null
+++ b/chaos/common/property/Property.h
@@ -0,0 +1,132 @@
+/*
+ *	Property.h
+ *	!CHAOS
+ *	Created by Bisegni Claudio.
+ *
+ *    	Copyright 2015 INFN, National Institute of Nuclear Physics
+ *
+ *    	Licensed under the Apache License, Version 2.0 (the "License");
+ *    	you may not use this file except in compliance with the License.
+ *    	You may obtain a copy of the License at
+ *
+ *    	http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    	Unless required by applicable law or agreed to in writing, software
+ *    	distributed under the License is distributed on an "AS IS" BASIS,
+ *    	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    	See the License for the specific language governing permissions and
+ *    	limitations under the License.
+ */
+#ifndef CHAOSFramework_Property_h
+#define CHAOSFramework_Property_h
+
+#include <chaos/common/exception/CException.h>
+
+#include <boost/lexical_cast.hpp>
+
+#include <string>
+
+#define CHAOS_PROPERTY_READ_ONLY    1
+#define CHAOS_PROPERTY_WRITE_ONLY   2
+#define CHAOS_PROPERTY_READ_WRITE   3
+
+namespace chaos{
+    namespace common {
+        namespace property {
+
+                //! define a property abstraction
+            /*!
+             this abstration this at a property like only
+             string value and name and description. Subclass need to
+             implement the conversion between real value and string
+             */
+            class AbstractProperty {
+            protected:
+
+                std::string name;
+
+                std::string description;
+
+            public:
+                virtual void setStrValue(std::string str_value) = 0;
+
+                virtual std::string getStrValue() = 0;
+
+                const std::string& getName() {
+                    return name;
+                }
+
+                const std::string& getDescritption() {
+                    return description;
+                }
+            };
+
+                //this class has been inspiered by http://www.codeproject.com/Articles/3900/Implementing-Properties-In-C
+                //property entity implementation
+            template <
+            typename ClassOwner,
+            typename ValueType,
+            int AccessType >
+            class Property :
+            public AbstractProperty {
+
+                    //-- Pointer to the module that contains the property --
+                ClassOwner* class_owner_instance;
+                    //-- Pointer to set member function --
+                void (ClassOwner::*set)(ValueType value);
+                    //-- Pointer to get member function --
+                ValueType (ClassOwner::*get)();
+
+            public:
+                Property(){}
+                ~Property(){}
+
+
+                Property *defineProperty(ClassOwner* _class_owner_instance,
+                                         void (ClassOwner::*_set)(ValueType value),
+                                         ValueType (ClassOwner::*_get)(),
+                                         const std::string& _name,
+                                         const std::string& _description) {
+                    class_owner_instance = _class_owner_instance;
+                    name = _name;
+                    description = _description;
+                    set = _set;
+                    get = _get;
+                    return this;
+                }
+
+
+                    //-- Overload the = operator to set the value using the set member --
+                ValueType operator =(const ValueType& value) throw (chaos::CException)  {
+                    if(class_owner_instance == NULL) throw chaos::CException(-1, "No class sinstance defined", __PRETTY_FUNCTION__);
+                    if((AccessType == CHAOS_PROPERTY_WRITE_ONLY) ||
+                       (AccessType == CHAOS_PROPERTY_READ_WRITE)) {
+                        (class_owner_instance->*set)(value);
+                    }else{
+                        throw chaos::CException(-1, "Variable can't be set", __PRETTY_FUNCTION__);
+                    }
+                    return value;
+                }
+
+                    //-- Cast the property class to the internal type --
+                operator ValueType() throw (chaos::CException) {
+                    assert(class_owner_instance != NULL);
+                    if((AccessType == CHAOS_PROPERTY_READ_ONLY) ||
+                       (AccessType == CHAOS_PROPERTY_READ_WRITE))
+                        return (class_owner_instance->*get)();
+                    else
+                        throw chaos::CException(-1, "Variable can't be read", __PRETTY_FUNCTION__);
+                }
+
+                void setStrValue(std::string str_value) {
+                    set(boost::lexical_cast<ValueType>(str_value));
+                }
+                
+                std::string getStrValue() {
+                    return boost::lexical_cast<std::string>(get());
+                }
+            };
+        }
+    }
+}
+#endif
diff --git a/chaos/common/property/PropertyCollector.h b/chaos/common/property/PropertyCollector.h
new file mode 100644
index 0000000000000000000000000000000000000000..42389a2b57b7ff3940c160bba62b2a9ec1ce9238
--- /dev/null
+++ b/chaos/common/property/PropertyCollector.h
@@ -0,0 +1,93 @@
+/*
+ *	PropertyCollector.h
+ *	!CHAOS
+ *	Created by Bisegni Claudio.
+ *
+ *    	Copyright 2015 INFN, National Institute of Nuclear Physics
+ *
+ *    	Licensed under the Apache License, Version 2.0 (the "License");
+ *    	you may not use this file except in compliance with the License.
+ *    	You may obtain a copy of the License at
+ *
+ *    	http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    	Unless required by applicable law or agreed to in writing, software
+ *    	distributed under the License is distributed on an "AS IS" BASIS,
+ *    	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    	See the License for the specific language governing permissions and
+ *    	limitations under the License.
+ */
+#ifndef CHAOSFramework_PropertyCollector_h
+#define CHAOSFramework_PropertyCollector_h
+
+
+#include <chaos/common/property/Property.h>
+
+#include <map>
+
+#define DECLARE_CHAOS_PROPERTY(own, type, access_type, name)\
+chaos::common::property::Property<own, type, access_type> name;
+
+#define REGISTER_CHAOS_PROPERTY(section, name, set, get, description)\
+addPropertyToSection(section, name.defineProperty(this, set, get, #name, description));
+
+
+namespace chaos{
+    namespace common {
+            //! nameapce for the managment of the !CHAOS publishable properties.
+
+        namespace property {
+
+                //! define the list of the properties
+            typedef std::map<std::string, AbstractProperty* >   PropertyMap;
+                //! define the property sections
+            typedef std::map<std::string, PropertyMap >   PropertySections;
+
+                //! a collector for all calss or subclass property
+            /*!
+             Every class that extends the collector can register property(with rule, get and setter) that
+             will be published on metadata server and can be directly updated remotely.
+             */
+            class PropertyCollector {
+                    //!associate a section name to a property list
+                PropertySections property_sections;
+
+            protected:
+                    //! add a new property to a section
+                void addPropertyToSection(const std::string& section_name,
+                                          AbstractProperty *property_for_section) throw (chaos::CException) {
+                    if(property_sections.count(section_name) == 0) {
+                        property_sections.insert(make_pair(section_name, PropertyMap()));
+                    }
+                    if(property_sections[section_name].count(property_for_section->getName()) > 0) {
+                        throw chaos::CException(-1, "Property already registerd", __PRETTY_FUNCTION__);
+                    }
+                    property_sections[section_name].insert(make_pair(property_for_section->getName(), property_for_section));
+                }
+
+            public:
+                void setSectionProperty(const std::string& section,
+                                        const std::string& property_name,
+                                        const std::string& property_value)  throw (chaos::CException) {
+                    if((property_sections.count(section) > 0) &&
+                       (property_sections[section].count(property_name) > 0)){
+                        property_sections[section][property_name]->setStrValue(property_value);
+                    }
+                }
+
+                std::string getSectionProperty(const std::string& section,
+                                               const std::string& property_name) {
+                    if((property_sections.count(section) > 0) &&
+                       (property_sections[section].count(property_name) > 0)){
+                        return property_sections[section][property_name]->getStrValue();
+                    } else {
+                        return std::string();
+                    }
+                }
+                
+            };
+        }
+    }
+}
+
+#endif
diff --git a/chaos/common/rpc/ChaosRpc.h b/chaos/common/rpc/ChaosRpc.h
index 6775dcf6f5fe6bf82bbe2b2b74b473ef27623249..4c52ac9d3f0324eb8242f14dec6b37fb7c2248f3 100644
--- a/chaos/common/rpc/ChaosRpc.h
+++ b/chaos/common/rpc/ChaosRpc.h
@@ -1,6 +1,6 @@
 /*	
  *	ChaosRpc.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/rpc/RpcClient.h b/chaos/common/rpc/RpcClient.h
index c3e1853367f9930a846d17b0a037307b44bee283..8a0e70e0aec722c2aa0242422fa322bd940e79a7 100644
--- a/chaos/common/rpc/RpcClient.h
+++ b/chaos/common/rpc/RpcClient.h
@@ -1,6 +1,6 @@
 /*	
  *	RpcClient.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/rpc/RpcMessageForwarder.h b/chaos/common/rpc/RpcMessageForwarder.h
index 32d32e8b6447d58bfccf1ac18992584166d57437..28852eefdaeb9aa45a3ffba277a8459f2799d44f 100644
--- a/chaos/common/rpc/RpcMessageForwarder.h
+++ b/chaos/common/rpc/RpcMessageForwarder.h
@@ -1,6 +1,6 @@
 /*
  *	RPCMessageForwarder.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/rpc/RpcServer.cpp b/chaos/common/rpc/RpcServer.cpp
index 732d76927c4791761132f0c3d13870a507137b07..1f4caeede4d507a2df138660239e081fcfce71b6 100644
--- a/chaos/common/rpc/RpcServer.cpp
+++ b/chaos/common/rpc/RpcServer.cpp
@@ -1,6 +1,6 @@
 /*
  *	RpcServer.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/rpc/RpcServer.h b/chaos/common/rpc/RpcServer.h
index d5faf52df2dca3e650ec96620c9fedbf779ce363..5807bed2d29a465ea23d5d9e0ebab6401f786e16 100644
--- a/chaos/common/rpc/RpcServer.h
+++ b/chaos/common/rpc/RpcServer.h
@@ -1,6 +1,6 @@
 /*
  *	RpcServer.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/rpc/RpcServerHandler.h b/chaos/common/rpc/RpcServerHandler.h
index c77ff0ee997104c73cad4f98a298672797e73a3b..bb4a77c3269fe566adf22c752c8cf061d17176a6 100644
--- a/chaos/common/rpc/RpcServerHandler.h
+++ b/chaos/common/rpc/RpcServerHandler.h
@@ -1,6 +1,6 @@
 /*
  *	RpcServerHanlder.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/rpc/tcpuv/TCPUVServer.cpp b/chaos/common/rpc/tcpuv/TCPUVServer.cpp
index e21ba03de8dbb58bdec57dcb42abcacb0ec2dbcf..8e672509d563876d05c664ac33adaa7cdec5d55c 100644
--- a/chaos/common/rpc/tcpuv/TCPUVServer.cpp
+++ b/chaos/common/rpc/tcpuv/TCPUVServer.cpp
@@ -1,6 +1,6 @@
 /*
  *	TCPUVServer.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/rpc/zmq/ZMQClient.cpp b/chaos/common/rpc/zmq/ZMQClient.cpp
index 984b93097a09b15d124e46030049611d1b7177c7..d70fe4fc8eb80ec484ec42eb80891d20741e3c6a 100644
--- a/chaos/common/rpc/zmq/ZMQClient.cpp
+++ b/chaos/common/rpc/zmq/ZMQClient.cpp
@@ -1,6 +1,6 @@
 /*
  *	ZMQClient.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/rpc/zmq/ZMQServer.cpp b/chaos/common/rpc/zmq/ZMQServer.cpp
index af62cd35665c05ea641fd2bfbb380974aa4d8bf9..aef49bad2210bad3bf91efc1ac07ed379f47828a 100644
--- a/chaos/common/rpc/zmq/ZMQServer.cpp
+++ b/chaos/common/rpc/zmq/ZMQServer.cpp
@@ -1,6 +1,6 @@
 /*
  *	ZMQServer.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/rpc/zmq/ZMQServer.h b/chaos/common/rpc/zmq/ZMQServer.h
index b4b23cd2b80e626862209baceee7778c7745095a..4377005c84268c800d16857ccffd38de6fa69976 100644
--- a/chaos/common/rpc/zmq/ZMQServer.h
+++ b/chaos/common/rpc/zmq/ZMQServer.h
@@ -1,6 +1,6 @@
 /*	
  *	ZMQServer.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/sync_rpc/ChaosSyncRpc.h b/chaos/common/sync_rpc/ChaosSyncRpc.h
index f7122d715c86ac81af5d50bd7d47075103ada6a5..86c90a40a2f0c605763b5ca56ee195122aee482b 100644
--- a/chaos/common/sync_rpc/ChaosSyncRpc.h
+++ b/chaos/common/sync_rpc/ChaosSyncRpc.h
@@ -1,6 +1,6 @@
 /*
  *	ChaosSyncRpc.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/sync_rpc/HTTPRpcSyncServer.cpp b/chaos/common/sync_rpc/HTTPRpcSyncServer.cpp
index 647a34b71bbc58c9c4eca82e67e71c132bdb6a4c..cd1587d4977f9672313dd5b4abdea8c29b98216e 100644
--- a/chaos/common/sync_rpc/HTTPRpcSyncServer.cpp
+++ b/chaos/common/sync_rpc/HTTPRpcSyncServer.cpp
@@ -1,6 +1,6 @@
 /*
  *	HTTPRpcSyncServer.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/sync_rpc/HTTPRpcSyncServer.h b/chaos/common/sync_rpc/HTTPRpcSyncServer.h
index 3a02fb8a5884485a608cc0acf657d214eef7fcca..cd7359c80c9b8d5ed70efcc857909e00aa200296 100644
--- a/chaos/common/sync_rpc/HTTPRpcSyncServer.h
+++ b/chaos/common/sync_rpc/HTTPRpcSyncServer.h
@@ -1,6 +1,6 @@
 /*
  *	HTTPRpcSyncServer.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/sync_rpc/RpcSyncServer.cpp b/chaos/common/sync_rpc/RpcSyncServer.cpp
index afa9c22a28d6796f7b0c310cf241bfbbc65b3d92..9e4981f3574b424ee36efd352d55b75294e0d0bd 100644
--- a/chaos/common/sync_rpc/RpcSyncServer.cpp
+++ b/chaos/common/sync_rpc/RpcSyncServer.cpp
@@ -1,6 +1,6 @@
 /*
  *	RpcSyncServer.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/sync_rpc/RpcSyncServer.h b/chaos/common/sync_rpc/RpcSyncServer.h
index f17da75da2b236d6b1cc93cee24362eb792ebe0a..d702881fc0307ef2f61fd83741631e88b95a0beb 100644
--- a/chaos/common/sync_rpc/RpcSyncServer.h
+++ b/chaos/common/sync_rpc/RpcSyncServer.h
@@ -1,6 +1,6 @@
 /*
  *	RpcSyncServer.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/thread/ChaosThread.h b/chaos/common/thread/ChaosThread.h
index d5597e761963b43278fc82bf934fdebb5121e978..e38f80c69102f53262eb84c7e0f33c9f2e39a942 100644
--- a/chaos/common/thread/ChaosThread.h
+++ b/chaos/common/thread/ChaosThread.h
@@ -1,6 +1,6 @@
 /*	
  *	ChaosThread.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/thread/MultiKeyObjectWaitSemaphore.h b/chaos/common/thread/MultiKeyObjectWaitSemaphore.h
index c9d88e990b0770b5e172f8754fb31d61c6c41400..2efd47188d0733362ef2c00299ddc85806d3f09f 100644
--- a/chaos/common/thread/MultiKeyObjectWaitSemaphore.h
+++ b/chaos/common/thread/MultiKeyObjectWaitSemaphore.h
@@ -1,6 +1,6 @@
 /*	
  *	MultiKeyObjectWaitSemaphore.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/thread/ObjectWaitSemaphore.h b/chaos/common/thread/ObjectWaitSemaphore.h
index 9682002db4a39ad3b2fabe53250bd4a7dfb27c7c..d38b8b88dca5dfb7ef19fd836fb7a6f80e1d3dcc 100644
--- a/chaos/common/thread/ObjectWaitSemaphore.h
+++ b/chaos/common/thread/ObjectWaitSemaphore.h
@@ -1,6 +1,6 @@
 /*	
  *	ObjectWaitSemaphore.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *	
  *    	Copyright <#Year#> INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/thread/TemplatedConcurrentQueue.h b/chaos/common/thread/TemplatedConcurrentQueue.h
index cce8752449f1d721aede4bc574acc89ae8826d40..5f3a82982b127d95522d996bf94e72c4571c9078 100644
--- a/chaos/common/thread/TemplatedConcurrentQueue.h
+++ b/chaos/common/thread/TemplatedConcurrentQueue.h
@@ -1,6 +1,6 @@
 /*
  *	TemplatedConcurrentQueue.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2013 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/thread/WaitSemaphore.h b/chaos/common/thread/WaitSemaphore.h
index 23b692169bf0d20243e50bc35cea9349291b4f24..272fefdc3868477da8945211fc4e45765084e3af 100644
--- a/chaos/common/thread/WaitSemaphore.h
+++ b/chaos/common/thread/WaitSemaphore.h
@@ -1,6 +1,6 @@
 /*	
  *	WaitSemaphore.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/utility/ArrayPointer.h b/chaos/common/utility/ArrayPointer.h
index 9962cd81ba525f67899ad1e2835812172889346b..810b0da5644e250402547e103246ee9f1dc7bd6c 100644
--- a/chaos/common/utility/ArrayPointer.h
+++ b/chaos/common/utility/ArrayPointer.h
@@ -1,6 +1,6 @@
 /*
  *	ArrayPointer.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/utility/Atomic.h b/chaos/common/utility/Atomic.h
index 8ba94358adc6458e13833fcec86d30dac8bd7e6e..fc296ba917d2b1e588c386c2653f61d77ee8d496 100644
--- a/chaos/common/utility/Atomic.h
+++ b/chaos/common/utility/Atomic.h
@@ -1,6 +1,6 @@
 /*
  *	Atomic.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/utility/ConcuredUsedItem.h b/chaos/common/utility/ConcuredUsedItem.h
index 87dfddcd7e6659bbcd4e6442c63ea980b17cbfcb..175df45ab4228b826bffaed3fce606fc709806ec 100644
--- a/chaos/common/utility/ConcuredUsedItem.h
+++ b/chaos/common/utility/ConcuredUsedItem.h
@@ -1,6 +1,6 @@
 /*
  *	ConcuredUsedItem.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/utility/InetUtility.h b/chaos/common/utility/InetUtility.h
index 557fa70d79cb93140ddcdcc04953313e5fa65e28..119ad24ea4df7927c387cbda497cdfd20a27238c 100644
--- a/chaos/common/utility/InetUtility.h
+++ b/chaos/common/utility/InetUtility.h
@@ -1,6 +1,6 @@
 /*
  *	InetUtility.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/utility/InizializableService.cpp b/chaos/common/utility/InizializableService.cpp
index 6b59bd2ea12f98b709d9a494133f611ff68c4248..5d80545350bc9c94ae48f26405b03e513c2cd980 100644
--- a/chaos/common/utility/InizializableService.cpp
+++ b/chaos/common/utility/InizializableService.cpp
@@ -1,6 +1,6 @@
 /*
  *	InizializableService.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2013 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/utility/InizializableService.h b/chaos/common/utility/InizializableService.h
index 75645cee3878799bdf332e4b22a2efcf25853ad8..5d81611e1afa8f2f9f0e0149eb34901ebf7d9377 100644
--- a/chaos/common/utility/InizializableService.h
+++ b/chaos/common/utility/InizializableService.h
@@ -1,6 +1,6 @@
 /*
  *	InizializableService.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2013 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/utility/LoadableService.cpp b/chaos/common/utility/LoadableService.cpp
index 81318d55bffecd1877133f83de49604eb1cbaa45..f2690553a53e7d20e570f88e1d3b65cf433be4fb 100644
--- a/chaos/common/utility/LoadableService.cpp
+++ b/chaos/common/utility/LoadableService.cpp
@@ -1,6 +1,6 @@
 /*
  *	LoadableService.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2013 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/utility/LoadableService.h b/chaos/common/utility/LoadableService.h
index 6d8d171c674b1008b69c0a838db55d21150f8b0f..8dab6450b0b4aa14c246fb9bffc0c405aeaa5dfc 100644
--- a/chaos/common/utility/LoadableService.h
+++ b/chaos/common/utility/LoadableService.h
@@ -1,6 +1,6 @@
 /*
  *	LoadableService.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2013 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/utility/NamedService.cpp b/chaos/common/utility/NamedService.cpp
index 7be9e02197d7fb83d9e38126a14b02f0533476c6..a849423c9b3d2392558badc510a65367bda4834a 100644
--- a/chaos/common/utility/NamedService.cpp
+++ b/chaos/common/utility/NamedService.cpp
@@ -1,6 +1,6 @@
 /*
  *	NamedService.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/utility/NamedService.h b/chaos/common/utility/NamedService.h
index a5ede15a863ae4363813b2a7abb575d4088d1b27..ce3f2765c3cda1ebe43d5bf20698944170d98cab 100644
--- a/chaos/common/utility/NamedService.h
+++ b/chaos/common/utility/NamedService.h
@@ -1,6 +1,6 @@
 /*
  *	NamedServices.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/utility/ObjectFactoryRegister.h b/chaos/common/utility/ObjectFactoryRegister.h
index e84abddb2426608b4ff5d3be51f67b3cc931dd74..9fa2451e61018b4f611010f4d2ae110b5264f395 100644
--- a/chaos/common/utility/ObjectFactoryRegister.h
+++ b/chaos/common/utility/ObjectFactoryRegister.h
@@ -1,6 +1,6 @@
 /*
  *	DispatcherRegister.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/utility/ObjectInstancer.h b/chaos/common/utility/ObjectInstancer.h
index 774df259909bd3e13b7351ae615191c42e609f7e..fdde1902138d3e3a4efc78f211cdcc9bd17eb025 100644
--- a/chaos/common/utility/ObjectInstancer.h
+++ b/chaos/common/utility/ObjectInstancer.h
@@ -1,6 +1,6 @@
 /*
  *	ObjectInstancer.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/utility/ObjectSlot.h b/chaos/common/utility/ObjectSlot.h
index 8e7e1cecef169ced9a1b2b565ab77687854f62fd..d7222bc260bb10d8b2b2d24271f18eaceac2f1c7 100644
--- a/chaos/common/utility/ObjectSlot.h
+++ b/chaos/common/utility/ObjectSlot.h
@@ -1,6 +1,6 @@
 /*
  *	ObjectSlot.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/utility/SingleBufferCircularBuffer.h b/chaos/common/utility/SingleBufferCircularBuffer.h
index bdd3ccd4cbc70bbc3cc7fd6fcba8d54c1accb1f8..b66cf01886dc95276363d77f87171c3db5c2ca7c 100644
--- a/chaos/common/utility/SingleBufferCircularBuffer.h
+++ b/chaos/common/utility/SingleBufferCircularBuffer.h
@@ -1,6 +1,6 @@
 /*
  *	 SingleBufferCircularBuffer.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/utility/Singleton.h b/chaos/common/utility/Singleton.h
index 4cf10856c0a5a9f77d3079b058012edf6a7133f3..ccd06351ee4ad38ec9a3bced3ba07fcf11029eb9 100644
--- a/chaos/common/utility/Singleton.h
+++ b/chaos/common/utility/Singleton.h
@@ -1,6 +1,6 @@
 /*
  *	Singleton.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/utility/StartableService.cpp b/chaos/common/utility/StartableService.cpp
index a39aff496a72565b044397951b3bbb7a4fca39db..50042f52ceda67767c5881a4125f265fa7f50845 100644
--- a/chaos/common/utility/StartableService.cpp
+++ b/chaos/common/utility/StartableService.cpp
@@ -1,6 +1,6 @@
 /*
  *	StartableService.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2013 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/utility/StartableService.h b/chaos/common/utility/StartableService.h
index 88bd0d3293fc8257ae7dd6bb39173ff80f7d1672..75dca1737ab9932b6fcde2b0536e69a47bf15112 100644
--- a/chaos/common/utility/StartableService.h
+++ b/chaos/common/utility/StartableService.h
@@ -1,6 +1,6 @@
 /*
  *	StartableService.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2013 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/utility/TemplatedKeyObjectContainer.h b/chaos/common/utility/TemplatedKeyObjectContainer.h
index 257c9397398101811555357a102d29170e360ecd..77abb867e28f1a0a2494f339d43d0ac853f0a08a 100644
--- a/chaos/common/utility/TemplatedKeyObjectContainer.h
+++ b/chaos/common/utility/TemplatedKeyObjectContainer.h
@@ -1,6 +1,6 @@
 /*
  *	TemplatedKeyObjectContainer.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/utility/TemplatedKeyValueHashMap.h b/chaos/common/utility/TemplatedKeyValueHashMap.h
index 972356db82fec7f1bc1219a4b27d3840bf999b4b..a59e57afa5b51bac51aa5a5719a53d1c6b9fb0f8 100644
--- a/chaos/common/utility/TemplatedKeyValueHashMap.h
+++ b/chaos/common/utility/TemplatedKeyValueHashMap.h
@@ -1,6 +1,6 @@
 /*
  *	TemplatedKeyValueHashMap.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/utility/TimingUtil.h b/chaos/common/utility/TimingUtil.h
index ef6c82e3844598cd70f9dbd29507bc9eb9d2cd5f..f3b47ff034f73c597d79a40e3c90e0499a982e73 100644
--- a/chaos/common/utility/TimingUtil.h
+++ b/chaos/common/utility/TimingUtil.h
@@ -1,6 +1,6 @@
 /*
  *	TimingUtil.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/utility/UUIDUtil.h b/chaos/common/utility/UUIDUtil.h
index 246a97aaec9522f31a0d15beb5dee6488b1cd8c3..38ad7f31b03f1fb473f1e74df807dcfb8bf38b45 100644
--- a/chaos/common/utility/UUIDUtil.h
+++ b/chaos/common/utility/UUIDUtil.h
@@ -1,6 +1,6 @@
 /*
  *	UUIDUtil.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/common/utility/UrlAccessibleService.h b/chaos/common/utility/UrlAccessibleService.h
index e4eef3b02ad543cd85ea067d881f92b7ad3daa95..6eb7e3486f1c5373946df8825f6965ca4defd50e 100644
--- a/chaos/common/utility/UrlAccessibleService.h
+++ b/chaos/common/utility/UrlAccessibleService.h
@@ -1,6 +1,6 @@
 /*
  *	UrlAccessibleService.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
diff --git a/chaos/cu_toolkit/ChaosCUToolkit.cpp b/chaos/cu_toolkit/ChaosCUToolkit.cpp
index d523624d4183e0b7ba285524bd854616d3cdf705..a1639594bf78bcbcb2ba2648f22c69c68271fd80 100644
--- a/chaos/cu_toolkit/ChaosCUToolkit.cpp
+++ b/chaos/cu_toolkit/ChaosCUToolkit.cpp
@@ -1,6 +1,6 @@
 /*	
  *	ChaosCUToolkit.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/cu_toolkit/ChaosCUToolkit.h b/chaos/cu_toolkit/ChaosCUToolkit.h
index 2aa42723b875c2c84b8e322055edd38569abaf0d..e913092779eccfa33a60b0d19cd99b883ea69941 100644
--- a/chaos/cu_toolkit/ChaosCUToolkit.h
+++ b/chaos/cu_toolkit/ChaosCUToolkit.h
@@ -1,6 +1,6 @@
 /*
  *	ChaosCUToolkit.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/cu_toolkit/CommandManager/CommandManager.cpp b/chaos/cu_toolkit/CommandManager/CommandManager.cpp
index 70d2f7e1c006b24ef9a6f837c0ba30c21867e869..930f60febb5232f63ddab49664147b9219f0724c 100644
--- a/chaos/cu_toolkit/CommandManager/CommandManager.cpp
+++ b/chaos/cu_toolkit/CommandManager/CommandManager.cpp
@@ -1,6 +1,6 @@
 /*	
  *	CommandManager.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/cu_toolkit/CommandManager/CommandManager.h b/chaos/cu_toolkit/CommandManager/CommandManager.h
index 100db9fd7e0b45f99eb8ed571b97d18e867e1a65..bebdede17e2c47ee1b7857b70a389bbdd79db51c 100644
--- a/chaos/cu_toolkit/CommandManager/CommandManager.h
+++ b/chaos/cu_toolkit/CommandManager/CommandManager.h
@@ -1,6 +1,6 @@
 /*
  *	CommandManager.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/cu_toolkit/CommandManager/CommandManagerDefaultAdapters.h b/chaos/cu_toolkit/CommandManager/CommandManagerDefaultAdapters.h
index c140122d589a2a5602caabd222af5dfafd06e975..22b8c99e3f818f218f3bbbdfeab389fd54a5de58 100644
--- a/chaos/cu_toolkit/CommandManager/CommandManagerDefaultAdapters.h
+++ b/chaos/cu_toolkit/CommandManager/CommandManagerDefaultAdapters.h
@@ -1,6 +1,6 @@
 /*	
  *	CommandManagerDefaultAdapters.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/cu_toolkit/ControlManager/AbstractControlUnit.cpp b/chaos/cu_toolkit/ControlManager/AbstractControlUnit.cpp
index 7c322088a77710f359ae70ca90bf0e84a11cf8c0..07e889eaef45540d7dd37d91d23aa5bd73068dd5 100644
--- a/chaos/cu_toolkit/ControlManager/AbstractControlUnit.cpp
+++ b/chaos/cu_toolkit/ControlManager/AbstractControlUnit.cpp
@@ -1,6 +1,6 @@
 /*
  *	ControlUnit.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/cu_toolkit/ControlManager/AbstractControlUnit.h b/chaos/cu_toolkit/ControlManager/AbstractControlUnit.h
index 45f4730226e8c8236bbfeb3f7bf63fd5deea61f3..31cc123a2375636c58008b4e21f367383713c43d 100644
--- a/chaos/cu_toolkit/ControlManager/AbstractControlUnit.h
+++ b/chaos/cu_toolkit/ControlManager/AbstractControlUnit.h
@@ -1,6 +1,6 @@
 /*
  *	ControlUnit.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/cu_toolkit/ControlManager/AttributeSharedCacheWrapper.cpp b/chaos/cu_toolkit/ControlManager/AttributeSharedCacheWrapper.cpp
index 1ca2d99b9150bb1902fc96e3adc3ad3818458ff6..797aba0462ff7e2c517f45bdaf5da461aceec0b8 100644
--- a/chaos/cu_toolkit/ControlManager/AttributeSharedCacheWrapper.cpp
+++ b/chaos/cu_toolkit/ControlManager/AttributeSharedCacheWrapper.cpp
@@ -1,6 +1,6 @@
 /*
  *	AttributeSharedCacheWrapper.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/chaos/cu_toolkit/ControlManager/AttributeSharedCacheWrapper.h b/chaos/cu_toolkit/ControlManager/AttributeSharedCacheWrapper.h
index ada34b7206b7b083dd935dacdd807b16550b4909..b46097b4034e652da7397c29d59711a945bf0396 100644
--- a/chaos/cu_toolkit/ControlManager/AttributeSharedCacheWrapper.h
+++ b/chaos/cu_toolkit/ControlManager/AttributeSharedCacheWrapper.h
@@ -1,6 +1,6 @@
 /*
  *	AttributeSharedCacheWrapper.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/chaos/cu_toolkit/ControlManager/ControlManager.cpp b/chaos/cu_toolkit/ControlManager/ControlManager.cpp
index f7752ccb1ac320c069f12b5b5316711cbc70a12e..2b65ee2681242d5bef36eb5da003d36c159927e3 100644
--- a/chaos/cu_toolkit/ControlManager/ControlManager.cpp
+++ b/chaos/cu_toolkit/ControlManager/ControlManager.cpp
@@ -1,6 +1,6 @@
 /*
  *	ControlManager.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/cu_toolkit/ControlManager/ControlManager.h b/chaos/cu_toolkit/ControlManager/ControlManager.h
index 67d41905af39c76ba96dc53f85ec6228f137457b..bc7f349dccfe160037a85150ee9f3d1e565d4e62 100644
--- a/chaos/cu_toolkit/ControlManager/ControlManager.h
+++ b/chaos/cu_toolkit/ControlManager/ControlManager.h
@@ -1,6 +1,6 @@
 /*
  *	ControlManager.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/cu_toolkit/ControlManager/RTAbstractControlUnit.cpp b/chaos/cu_toolkit/ControlManager/RTAbstractControlUnit.cpp
index a2db6b4d49ab564de90b1b4f335ce98c8e9155d5..408b03a47964228188e6dc26be9da34fda186123 100644
--- a/chaos/cu_toolkit/ControlManager/RTAbstractControlUnit.cpp
+++ b/chaos/cu_toolkit/ControlManager/RTAbstractControlUnit.cpp
@@ -1,6 +1,6 @@
 /*
  *	RTAbstractControlUnit.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2013 INFN, National Institute of Nuclear Physics
diff --git a/chaos/cu_toolkit/ControlManager/RTAbstractControlUnit.h b/chaos/cu_toolkit/ControlManager/RTAbstractControlUnit.h
index b18d31841cf4796ab57f3df996d2ea885339bcd4..4ad45ba3e0add3b7f3abd851889d4f0c845c2bcb 100644
--- a/chaos/cu_toolkit/ControlManager/RTAbstractControlUnit.h
+++ b/chaos/cu_toolkit/ControlManager/RTAbstractControlUnit.h
@@ -1,6 +1,6 @@
 /*
  *	RTAbstractControlUnit.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2013 INFN, National Institute of Nuclear Physics
diff --git a/chaos/cu_toolkit/ControlManager/SCAbstractControlUnit.h b/chaos/cu_toolkit/ControlManager/SCAbstractControlUnit.h
index 33a1d9c910c8dd83a0168d49f9b0e40ad0a3ab3f..c5c0ca0a2a8a257c258465f90353b0f018275118 100644
--- a/chaos/cu_toolkit/ControlManager/SCAbstractControlUnit.h
+++ b/chaos/cu_toolkit/ControlManager/SCAbstractControlUnit.h
@@ -1,6 +1,6 @@
 /*
  *	SCAbstractControlUnit.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2013 INFN, National Institute of Nuclear Physics
diff --git a/chaos/cu_toolkit/ControlManager/WorkUnitManagement.cpp b/chaos/cu_toolkit/ControlManager/WorkUnitManagement.cpp
index 7c507272e3821d15a02608db9a9f824b9c4979fe..7691a5744e68f99cd9d4501c7d527e00bc80b3fa 100644
--- a/chaos/cu_toolkit/ControlManager/WorkUnitManagement.cpp
+++ b/chaos/cu_toolkit/ControlManager/WorkUnitManagement.cpp
@@ -1,6 +1,6 @@
 /*
  *	WorkUnitManagement.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/cu_toolkit/ControlManager/WorkUnitManagement.h b/chaos/cu_toolkit/ControlManager/WorkUnitManagement.h
index 18d92a0055700b8ea8171acb6a8a939436c40a6b..8ea45bb0f9cb49c3e323e09f969b292f911743e9 100644
--- a/chaos/cu_toolkit/ControlManager/WorkUnitManagement.h
+++ b/chaos/cu_toolkit/ControlManager/WorkUnitManagement.h
@@ -1,6 +1,6 @@
 /*
  *	WorkUnitManagement.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/cu_toolkit/ControlManager/slow_command/SlowCommand.cpp b/chaos/cu_toolkit/ControlManager/slow_command/SlowCommand.cpp
index 5b067354cd3d4956fddc1cd417da57082c93608d..e79f14ddf74e43375a4a1e3aa4178afa058f899f 100644
--- a/chaos/cu_toolkit/ControlManager/slow_command/SlowCommand.cpp
+++ b/chaos/cu_toolkit/ControlManager/slow_command/SlowCommand.cpp
@@ -1,6 +1,6 @@
 /*
  *	SlowCommand.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/cu_toolkit/ControlManager/slow_command/SlowCommand.h b/chaos/cu_toolkit/ControlManager/slow_command/SlowCommand.h
index a71349ed3d67ac71719f3538244bb8df009698c4..ee976a212bbd11574f7eae284ec41bc619ec381c 100644
--- a/chaos/cu_toolkit/ControlManager/slow_command/SlowCommand.h
+++ b/chaos/cu_toolkit/ControlManager/slow_command/SlowCommand.h
@@ -1,6 +1,6 @@
 /*
  *	SlowCommand.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
@@ -49,7 +49,7 @@ namespace chaos{
         
         namespace control_manager {
             
-            //! The name space that group all foundamental class need by slow control !CHOAS implementation
+            //! The name space that group all foundamental class need by slow control !CHAOS implementation
             namespace slow_command {
 				
 				namespace command {
diff --git a/chaos/cu_toolkit/ControlManager/slow_command/SlowCommandExecutor.cpp b/chaos/cu_toolkit/ControlManager/slow_command/SlowCommandExecutor.cpp
index 96028615ecf0f6c192d719af097cc06a9d706cf8..94520b20eb2202720b5b09713f679445922a4f52 100644
--- a/chaos/cu_toolkit/ControlManager/slow_command/SlowCommandExecutor.cpp
+++ b/chaos/cu_toolkit/ControlManager/slow_command/SlowCommandExecutor.cpp
@@ -1,6 +1,6 @@
 /*
  *	SlowCommandExecutor.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2013 INFN, National Institute of Nuclear Physics
diff --git a/chaos/cu_toolkit/ControlManager/slow_command/SlowCommandExecutor.h b/chaos/cu_toolkit/ControlManager/slow_command/SlowCommandExecutor.h
index 514a6c6667f2f66bcdb04cb94009e5162ed93730..e8d047d2edbc7d342bcd39f79e43f6c666d10043 100644
--- a/chaos/cu_toolkit/ControlManager/slow_command/SlowCommandExecutor.h
+++ b/chaos/cu_toolkit/ControlManager/slow_command/SlowCommandExecutor.h
@@ -1,6 +1,6 @@
 /*
  *	SlowCommandExecutor.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2013 INFN, National Institute of Nuclear Physics
diff --git a/chaos/cu_toolkit/ControlManager/slow_command/command/SetAttributeCommand.cpp b/chaos/cu_toolkit/ControlManager/slow_command/command/SetAttributeCommand.cpp
index 6fd0467e34ae1d3813f70c94eb1abaa0b94d10dc..785fa99937711447f17654140aa5dca831fac3aa 100644
--- a/chaos/cu_toolkit/ControlManager/slow_command/command/SetAttributeCommand.cpp
+++ b/chaos/cu_toolkit/ControlManager/slow_command/command/SetAttributeCommand.cpp
@@ -1,6 +1,6 @@
 /*
  *	SetAttributeCommand.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2013 INFN, National Institute of Nuclear Physics
diff --git a/chaos/cu_toolkit/ControlManager/slow_command/command/SetAttributeCommand.h b/chaos/cu_toolkit/ControlManager/slow_command/command/SetAttributeCommand.h
index 87888fb4f205e5954bc31055077f60be73418476..34cb5493a3f65a61954e4cd148d98788b61be2d1 100644
--- a/chaos/cu_toolkit/ControlManager/slow_command/command/SetAttributeCommand.h
+++ b/chaos/cu_toolkit/ControlManager/slow_command/command/SetAttributeCommand.h
@@ -1,6 +1,6 @@
 /*
  *	SetAttributeCommand.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2013 INFN, National Institute of Nuclear Physics
diff --git a/chaos/cu_toolkit/DataManager/DataManager.cpp b/chaos/cu_toolkit/DataManager/DataManager.cpp
index 11cd04c1e93d6f721328090ad1f260f463d6dfde..03509938909fc1a7746c7ab7b44abbca7e873d85 100644
--- a/chaos/cu_toolkit/DataManager/DataManager.cpp
+++ b/chaos/cu_toolkit/DataManager/DataManager.cpp
@@ -1,6 +1,6 @@
 /*	
  *	DataManager.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/cu_toolkit/DataManager/DataManager.h b/chaos/cu_toolkit/DataManager/DataManager.h
index ffd1e3af10ee0c18331bea0c455446c3d802ff6a..1ff3e0a01c88e89af1239d0a9a3903cb71878354 100644
--- a/chaos/cu_toolkit/DataManager/DataManager.h
+++ b/chaos/cu_toolkit/DataManager/DataManager.h
@@ -1,6 +1,6 @@
 /*
  *	DataManager.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/cu_toolkit/DataManager/DataManagerException.h b/chaos/cu_toolkit/DataManager/DataManagerException.h
index 70150a778976d73d3adfea71643109077d84fb43..8d1160650718c19d1807983fd32c797fd1459b52 100644
--- a/chaos/cu_toolkit/DataManager/DataManagerException.h
+++ b/chaos/cu_toolkit/DataManager/DataManagerException.h
@@ -1,6 +1,6 @@
 /*
  *	DataManagerException.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/cu_toolkit/DataManager/KeyDataStorage.cpp b/chaos/cu_toolkit/DataManager/KeyDataStorage.cpp
index ec9b21923277ffe637f255828fef35f252f798b8..c17e19601962fe3c0ec4cf2f0afadf8af27c0e91 100644
--- a/chaos/cu_toolkit/DataManager/KeyDataStorage.cpp
+++ b/chaos/cu_toolkit/DataManager/KeyDataStorage.cpp
@@ -1,6 +1,6 @@
   /*
  *	KeyDataStorage.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/cu_toolkit/DataManager/KeyDataStorage.h b/chaos/cu_toolkit/DataManager/KeyDataStorage.h
index fd62888415f27d8a7c1b811a80f0d7178143c4bc..62bfeb1962293000e73c14bad3f7370aa49abdae 100644
--- a/chaos/cu_toolkit/DataManager/KeyDataStorage.h
+++ b/chaos/cu_toolkit/DataManager/KeyDataStorage.h
@@ -1,6 +1,6 @@
 /*
  *	KeyDataStorage.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/cu_toolkit/driver_manager/DriverManager.cpp b/chaos/cu_toolkit/driver_manager/DriverManager.cpp
index 33136140f34976be2bc4d4ccc112a3bf15b6ca1b..3c3ca534003e80c1c010016d0c19b4b7bd2d9750 100644
--- a/chaos/cu_toolkit/driver_manager/DriverManager.cpp
+++ b/chaos/cu_toolkit/driver_manager/DriverManager.cpp
@@ -1,6 +1,6 @@
 /*
  *	DriverManager.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2013 INFN, National Institute of Nuclear Physics
diff --git a/chaos/cu_toolkit/driver_manager/DriverManager.h b/chaos/cu_toolkit/driver_manager/DriverManager.h
index 170d91d604a865084d5036df4282431e6af1ba8a..9df7083b57104bdb991657564421444d3c1ab7db 100644
--- a/chaos/cu_toolkit/driver_manager/DriverManager.h
+++ b/chaos/cu_toolkit/driver_manager/DriverManager.h
@@ -1,6 +1,6 @@
 /*
  *	DriverManager.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2013 INFN, National Institute of Nuclear Physics
diff --git a/chaos/cu_toolkit/driver_manager/driver/AbstractDriver.cpp b/chaos/cu_toolkit/driver_manager/driver/AbstractDriver.cpp
index 8f918eb450a56c76e0cba381d2fe812ba0675e45..fe3192f9f12e33310202f39f1a490f011c8f07a3 100644
--- a/chaos/cu_toolkit/driver_manager/driver/AbstractDriver.cpp
+++ b/chaos/cu_toolkit/driver_manager/driver/AbstractDriver.cpp
@@ -1,6 +1,6 @@
  /*
  *	AbstractDriver.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/cu_toolkit/driver_manager/driver/AbstractDriver.h b/chaos/cu_toolkit/driver_manager/driver/AbstractDriver.h
index 50707a47b6d955c89224b426537d3d772bbd5446..2a3cf2a32eb78423d8a5de58b9cb163fe2d8d9fe 100644
--- a/chaos/cu_toolkit/driver_manager/driver/AbstractDriver.h
+++ b/chaos/cu_toolkit/driver_manager/driver/AbstractDriver.h
@@ -1,6 +1,6 @@
 /*
  *	AbstractDriver.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
@@ -57,7 +57,7 @@ namespace chaos{
 				
                     //! !CHAOS Device Driver abstract class
                 /*!
-                    This represent the base class for all driver in !CHOAS. For standardize the comunicacetion 
+                    This represent the base class for all driver in !CHAOS. For standardize the comunicacetion 
                     a message queue is used for receive DrvMsg pack.
                  */
 				class AbstractDriver:
diff --git a/chaos/cu_toolkit/driver_manager/driver/AbstractDriverPlugin.cpp b/chaos/cu_toolkit/driver_manager/driver/AbstractDriverPlugin.cpp
index f9e5405242a2e1eab4b70c0ca3120fca0565ee91..d5cf0da269044ca76f535f9b0581f46da7d1defc 100644
--- a/chaos/cu_toolkit/driver_manager/driver/AbstractDriverPlugin.cpp
+++ b/chaos/cu_toolkit/driver_manager/driver/AbstractDriverPlugin.cpp
@@ -1,6 +1,6 @@
 /*
  *	AbstractDriverPLugin.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2013 INFN, National Institute of Nuclear Physics
diff --git a/chaos/cu_toolkit/driver_manager/driver/AbstractDriverPlugin.h b/chaos/cu_toolkit/driver_manager/driver/AbstractDriverPlugin.h
index df367262dab47e25657f17e7c10a383aede2b265..c87e7bf104f5c0d8d189c45620e3bd1e0ddd62ae 100644
--- a/chaos/cu_toolkit/driver_manager/driver/AbstractDriverPlugin.h
+++ b/chaos/cu_toolkit/driver_manager/driver/AbstractDriverPlugin.h
@@ -1,6 +1,6 @@
 /*
  *	DriverWrapperPlugin.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2013 INFN, National Institute of Nuclear Physics
diff --git a/chaos/cu_toolkit/driver_manager/driver/DriverAccessor.cpp b/chaos/cu_toolkit/driver_manager/driver/DriverAccessor.cpp
index 5b6073a194c2a0b3b9e02158328d02d562c62bb1..71e7f94def420d5fb30b67b5ecec89b7122a3570 100644
--- a/chaos/cu_toolkit/driver_manager/driver/DriverAccessor.cpp
+++ b/chaos/cu_toolkit/driver_manager/driver/DriverAccessor.cpp
@@ -1,6 +1,6 @@
 /*
  *	DriverAccessor.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/cu_toolkit/driver_manager/driver/DriverAccessor.h b/chaos/cu_toolkit/driver_manager/driver/DriverAccessor.h
index 90f816dc94d9d3f2849e609849f6c380a4736f15..c497bf263d63a05359b536023b69a47f9b7a7b4d 100644
--- a/chaos/cu_toolkit/driver_manager/driver/DriverAccessor.h
+++ b/chaos/cu_toolkit/driver_manager/driver/DriverAccessor.h
@@ -1,6 +1,6 @@
 /*
  *	DriverAccessor.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/cu_toolkit/driver_manager/driver/DriverPluginLoader.cpp b/chaos/cu_toolkit/driver_manager/driver/DriverPluginLoader.cpp
index 9e9aa99a636f88a4480393cf982d9ca2dca43aca..9bb4342bc08b7df3747f015100ffdff47e24a25d 100644
--- a/chaos/cu_toolkit/driver_manager/driver/DriverPluginLoader.cpp
+++ b/chaos/cu_toolkit/driver_manager/driver/DriverPluginLoader.cpp
@@ -1,6 +1,6 @@
 /*
  *	DriverPLuginLoader.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2013 INFN, National Institute of Nuclear Physics
diff --git a/chaos/cu_toolkit/driver_manager/driver/DriverPluginLoader.h b/chaos/cu_toolkit/driver_manager/driver/DriverPluginLoader.h
index 4d4b5b81b21cf1d75d60cf2c33b48b4eecc85e04..608f75271865f33c42f8ea957c633f98121a391f 100644
--- a/chaos/cu_toolkit/driver_manager/driver/DriverPluginLoader.h
+++ b/chaos/cu_toolkit/driver_manager/driver/DriverPluginLoader.h
@@ -1,6 +1,6 @@
 /*
  *	DriverPluginLoader.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2013 INFN, National Institute of Nuclear Physics
diff --git a/chaos/cu_toolkit/driver_manager/driver/DriverTypes.h b/chaos/cu_toolkit/driver_manager/driver/DriverTypes.h
index cec2d0f5b84d2f1c262664a065def00d9f6c1cb8..8a6961a2b0f28afa97bfa4cab2a6cdbef9a449f5 100644
--- a/chaos/cu_toolkit/driver_manager/driver/DriverTypes.h
+++ b/chaos/cu_toolkit/driver_manager/driver/DriverTypes.h
@@ -1,6 +1,6 @@
 /*
  *	DriverGlobal.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/ui_toolkit/ChaosUIToolkit.cpp b/chaos/ui_toolkit/ChaosUIToolkit.cpp
index 0b13d770b56f5d04ec2aa1699d3fcff5f78f7341..48383f57116af2e50cd2896f05ad8f1f949de45a 100644
--- a/chaos/ui_toolkit/ChaosUIToolkit.cpp
+++ b/chaos/ui_toolkit/ChaosUIToolkit.cpp
@@ -1,6 +1,6 @@
 /*	
  *	ChaosUIToolkit.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/ui_toolkit/ChaosUIToolkit.h b/chaos/ui_toolkit/ChaosUIToolkit.h
index 4dadf527ff8634a651329634ddad54bfa0a121cc..1ba2ec200a6db127baa0a8b28b0cfba119b19069 100644
--- a/chaos/ui_toolkit/ChaosUIToolkit.h
+++ b/chaos/ui_toolkit/ChaosUIToolkit.h
@@ -1,6 +1,6 @@
 /*	
  *	ChaosUIToolkit.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/ui_toolkit/ChaosUIToolkitCWrapper.cc b/chaos/ui_toolkit/ChaosUIToolkitCWrapper.cc
index 12b7939cd003bb54fc5ffb55acd5b7bfa3404a21..503ab2b041f0396a63fddcd2c6c8f6b643eb182f 100644
--- a/chaos/ui_toolkit/ChaosUIToolkitCWrapper.cc
+++ b/chaos/ui_toolkit/ChaosUIToolkitCWrapper.cc
@@ -1,6 +1,6 @@
 /*
  *	ChaosUIToolkit.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/ui_toolkit/ChaosUIToolkitCWrapper.h b/chaos/ui_toolkit/ChaosUIToolkitCWrapper.h
index c6515ff988f853fe3cedf1c699373949e00cad5f..4f17e11516302f3c11f4711c5f4d0459688f82d5 100644
--- a/chaos/ui_toolkit/ChaosUIToolkitCWrapper.h
+++ b/chaos/ui_toolkit/ChaosUIToolkitCWrapper.h
@@ -1,6 +1,6 @@
 /*
  *	ChaosUIToolkitCWrapper.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
@@ -24,7 +24,7 @@
  *  \section page_cuit_sec Why an a "C" language wrapper?
  *  Some applications used in scentific experiment (as for example LabView) can be
  *  can be customized with the use of shared library written in "C" language. At this
- *  scope, !CHOAS give a simple interface to a DeviceController managed by user interface
+ *  scope, !CHAOS give a simple interface to a DeviceController managed by user interface
  *  toolkit \link UIToolkitCWrapper wrapped with few simple "C" function\endlink.
  */
 
diff --git a/chaos/ui_toolkit/HighLevelApi/DeviceController.cpp b/chaos/ui_toolkit/HighLevelApi/DeviceController.cpp
index 5eded2f5ae17bbef06b30a66e60592702716fd95..a612d4ec16cdb4ee742d0510a7d436bcac1f7bd3 100644
--- a/chaos/ui_toolkit/HighLevelApi/DeviceController.cpp
+++ b/chaos/ui_toolkit/HighLevelApi/DeviceController.cpp
@@ -1,6 +1,6 @@
  /*
  *	DeviceLiveDataFetcher.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/ui_toolkit/HighLevelApi/DeviceController.h b/chaos/ui_toolkit/HighLevelApi/DeviceController.h
index a6e06e4a8b45eadd0cd67c61959d417c1bcf3b45..ce2f45a3a8a9fbcac1e6dc82e9feccf75b7e701a 100644
--- a/chaos/ui_toolkit/HighLevelApi/DeviceController.h
+++ b/chaos/ui_toolkit/HighLevelApi/DeviceController.h
@@ -1,6 +1,6 @@
 /*
  *	DeviceLiveDataFetcher.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/ui_toolkit/HighLevelApi/HLDataApi.cpp b/chaos/ui_toolkit/HighLevelApi/HLDataApi.cpp
index f14e08a01d904b0b404386169669cf1a891736f3..1636f0cb38f5efd15001526b34dbc49d8be2c265 100644
--- a/chaos/ui_toolkit/HighLevelApi/HLDataApi.cpp
+++ b/chaos/ui_toolkit/HighLevelApi/HLDataApi.cpp
@@ -1,6 +1,6 @@
 /*	
  *	HLDataApi.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/ui_toolkit/HighLevelApi/HLDataApi.h b/chaos/ui_toolkit/HighLevelApi/HLDataApi.h
index 7f17b93a3874a1ff59bb24979956e0d4095ca52d..f8e3459d0071bd95b31b7a8f5a86950cf630672b 100644
--- a/chaos/ui_toolkit/HighLevelApi/HLDataApi.h
+++ b/chaos/ui_toolkit/HighLevelApi/HLDataApi.h
@@ -1,6 +1,6 @@
 /*	
  *	HLDataApi.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/ui_toolkit/HighLevelApi/HLInfrastructureApi.cpp b/chaos/ui_toolkit/HighLevelApi/HLInfrastructureApi.cpp
index dc0c789fd63d5f7fa81240a60f63015ef00cec37..1d7a38aab8833d8903cc407dbb4247067ef9fe0e 100644
--- a/chaos/ui_toolkit/HighLevelApi/HLInfrastructureApi.cpp
+++ b/chaos/ui_toolkit/HighLevelApi/HLInfrastructureApi.cpp
@@ -1,6 +1,6 @@
 /*	
  *	HLInfrastructureApi.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/ui_toolkit/HighLevelApi/HLInfrastructureApi.h b/chaos/ui_toolkit/HighLevelApi/HLInfrastructureApi.h
index f832cb0ce182a2ea648ef3513fad6d7747dbf929..e3d14dacab63143490cc5499b550badf83e6d867 100644
--- a/chaos/ui_toolkit/HighLevelApi/HLInfrastructureApi.h
+++ b/chaos/ui_toolkit/HighLevelApi/HLInfrastructureApi.h
@@ -1,6 +1,6 @@
 /*	
  *	HLInfrastructureApi.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/ui_toolkit/LowLevelApi/LLDataApi.cpp b/chaos/ui_toolkit/LowLevelApi/LLDataApi.cpp
index bbaed29929b33fb866edbf6693f392c896e8aace..c7bf40b53806eac45d2a0a44f20caeb391b32432 100644
--- a/chaos/ui_toolkit/LowLevelApi/LLDataApi.cpp
+++ b/chaos/ui_toolkit/LowLevelApi/LLDataApi.cpp
@@ -1,6 +1,6 @@
 /*	
  *	LLDataApi.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/ui_toolkit/LowLevelApi/LLDataApi.h b/chaos/ui_toolkit/LowLevelApi/LLDataApi.h
index 91591e5a9d5d5ff12e5d43a924094f7a4ffa1eec..b0a4908fff0b0f3d7b2a5f0549f760484de920a5 100644
--- a/chaos/ui_toolkit/LowLevelApi/LLDataApi.h
+++ b/chaos/ui_toolkit/LowLevelApi/LLDataApi.h
@@ -1,6 +1,6 @@
 /*	
  *	LLDataApi.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/ui_toolkit/LowLevelApi/LLRpcApi.cpp b/chaos/ui_toolkit/LowLevelApi/LLRpcApi.cpp
index 56add800f9ed65ef010ed812b59207629c12d7e3..6db7f62ab907fd1cadd3247fa76ef11cf5b33b8d 100644
--- a/chaos/ui_toolkit/LowLevelApi/LLRpcApi.cpp
+++ b/chaos/ui_toolkit/LowLevelApi/LLRpcApi.cpp
@@ -1,6 +1,6 @@
 /*	
  *	LLRpcApi.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *	
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/ui_toolkit/LowLevelApi/LLRpcApi.h b/chaos/ui_toolkit/LowLevelApi/LLRpcApi.h
index ee8a53cad04b16550e960a3f25c6300d588f0054..545e6978f1ad7d9df890465a85595e79d9ba79e5 100644
--- a/chaos/ui_toolkit/LowLevelApi/LLRpcApi.h
+++ b/chaos/ui_toolkit/LowLevelApi/LLRpcApi.h
@@ -1,6 +1,6 @@
 /*
  *	LLRpcApi.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
diff --git a/chaos/ui_toolkit/caching/LiveDataFetcher.h b/chaos/ui_toolkit/caching/LiveDataFetcher.h
index 611784d11fb43af023536807772748d78305a2d7..cd938accc25e454b8778ab6ee6f43c7f20f31361 100644
--- a/chaos/ui_toolkit/caching/LiveDataFetcher.h
+++ b/chaos/ui_toolkit/caching/LiveDataFetcher.h
@@ -28,7 +28,7 @@ namespace chaos {
         namespace chaching {
             
             /*!
-             Class that implemnt the CDatawrapper fetcher from !CHOAS live data.
+             Class that implemnt the CDatawrapper fetcher from !CHAOS live data.
              */
             class LiveDataFetcher :
 			public chaos::caching_system::DataFetcherInterface<chaos_data::CDataWrapper>,
diff --git a/chaos_service_common/persistence/data_access/AbstractDataAccess.cpp b/chaos_service_common/persistence/data_access/AbstractDataAccess.cpp
index 767a05de95456d6aec1107649ba0d4a096c67078..54de71ec7bdbd12b2d15f4ddc21ff72923243e4f 100644
--- a/chaos_service_common/persistence/data_access/AbstractDataAccess.cpp
+++ b/chaos_service_common/persistence/data_access/AbstractDataAccess.cpp
@@ -1,6 +1,6 @@
 /*
  *	AbstractDataAccess.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/chaos_service_common/persistence/data_access/AbstractDataAccess.h b/chaos_service_common/persistence/data_access/AbstractDataAccess.h
index da3c4146bd5282ce54aacb9d60376b17742783ab..87a6cf48a8386b733bcf990cb15847e301ec2337 100644
--- a/chaos_service_common/persistence/data_access/AbstractDataAccess.h
+++ b/chaos_service_common/persistence/data_access/AbstractDataAccess.h
@@ -1,6 +1,6 @@
 /*
  *	AbstractDataAccess.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
@@ -20,11 +20,8 @@
 #ifndef __CHAOSFramework__AbstractDataAccess__
 #define __CHAOSFramework__AbstractDataAccess__
 
-#include "persistence_types.h"
-
 #include <chaos/common/utility/NamedService.h>
 
-
 #define DECLARE_DA_NAME static const char * const name;
 #define DEFINE_DA_NAME(x) const char * const x::name=#x;
 
@@ -41,7 +38,7 @@ namespace chaos {
                  */
                 class AbstractDataAccess:
                 public chaos::common::utility::NamedService {
-                   
+
                 public:
                     AbstractDataAccess(const std::string& name);
                     virtual ~AbstractDataAccess();
diff --git a/chaos_service_common/persistence/data_access/AbstractPersistenceDriver.cpp b/chaos_service_common/persistence/data_access/AbstractPersistenceDriver.cpp
index cb4bd9c9a2c7c819f75f957a113123ce962933ec..4fedbf3ffa16dd88c8191f29c136479ba5344369 100644
--- a/chaos_service_common/persistence/data_access/AbstractPersistenceDriver.cpp
+++ b/chaos_service_common/persistence/data_access/AbstractPersistenceDriver.cpp
@@ -1,6 +1,6 @@
 /*
  *	AbstractPersistenceDriver.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/chaos_service_common/persistence/data_access/AbstractPersistenceDriver.h b/chaos_service_common/persistence/data_access/AbstractPersistenceDriver.h
index 42f6fdfefe8e57a1cae6abf440be17349c1b058b..2c859ed7de8d7851aeac308128ac3c16519cdda0 100644
--- a/chaos_service_common/persistence/data_access/AbstractPersistenceDriver.h
+++ b/chaos_service_common/persistence/data_access/AbstractPersistenceDriver.h
@@ -1,6 +1,6 @@
 /*
  *	AbstractPersistenceDriver.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyrigh 2015 INFN, National Institute of Nuclear Physics
diff --git a/chaos_service_common/persistence/mongodb/MongoDBAccessor.cpp b/chaos_service_common/persistence/mongodb/MongoDBAccessor.cpp
index 58abcb02bccbb32808306c80f5c2d2e9a4ac708d..cf2b332273b58de85d8daa13f34b706bc5d2c12a 100644
--- a/chaos_service_common/persistence/mongodb/MongoDBAccessor.cpp
+++ b/chaos_service_common/persistence/mongodb/MongoDBAccessor.cpp
@@ -1,6 +1,6 @@
 /*
  *	MongoDBAccessor.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
@@ -39,6 +39,27 @@ const std::string& MongoDBAccessor::getDatabaseName() {
     return connection->getDatabaseName();
 }
 
+mongo::BSONObj MongoDBAccessor::regexOnField(const std::string& field_name,
+                                             const std::string& regex) {
+    return MONGODB_REGEX_ON_FILED(field_name, regex);
+}
+
+mongo::BSONObj MongoDBAccessor::arrayMatch(const std::string& serach_key, const std::string& search_value) {
+    return BSON("$elemMatch" << BSON(serach_key << search_value));
+}
+
+mongo::BSONObj MongoDBAccessor::arrayMatch(const std::vector<std::pair<std::string, std::string> >& search_keys_values) {
+    mongo::BSONObjBuilder q_math_build;
+        //scan all search info within array
+    for(std::vector<std::pair<std::string, std::string> >::const_iterator it = search_keys_values.begin();
+        it != search_keys_values.end();
+        it++){
+        q_math_build << it->first << it->second;
+    }
+
+    return BSON("$elemMatch" << q_math_build.obj());
+}
+
 int MongoDBAccessor::performPagedQuery(SearchResult& paged_result,
                                        const std::string& db_collection,
                                        mongo::Query q,
diff --git a/chaos_service_common/persistence/mongodb/MongoDBAccessor.h b/chaos_service_common/persistence/mongodb/MongoDBAccessor.h
index cf86c9fec05ba801261232e4e75cefc01a78bfd2..73bed8288b58c12a112b465768d67d696ef0df98 100644
--- a/chaos_service_common/persistence/mongodb/MongoDBAccessor.h
+++ b/chaos_service_common/persistence/mongodb/MongoDBAccessor.h
@@ -1,6 +1,6 @@
 /*
  *	MongoDBAccessor.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2015 INFN, National Institute of Nuclear Physics
@@ -51,7 +51,23 @@ namespace chaos {
                     virtual ~MongoDBAccessor();
                     
                     const std::string& getDatabaseName();
-                    
+
+                    mongo::BSONObj regexOnField(const std::string& field_name,
+                                                const std::string& regex);
+
+                        //! search within an array with a list of simple query()key/value
+                    /*!
+                     \param search_keys_values the key valu epairs that are the simple mongodb query(key/value)
+                     */
+                    mongo::BSONObj arrayMatch(const std::vector<std::pair<std::string, std::string> >& search_keys_values);
+
+                        //! search within an array with simple query key/value
+                    /*!
+                     \param serach_key the key for the field
+                     \param search_value the value corresponding to the key
+                     */
+                    mongo::BSONObj arrayMatch(const std::string& serach_key, const std::string& search_value);
+
                     //! perform a paged query
                     /*!
                      perform a query using paging logic
diff --git a/chaos_service_common/persistence/mongodb/MongoDBHAConnectionManager.h b/chaos_service_common/persistence/mongodb/MongoDBHAConnectionManager.h
index 099ec7440184faf2fb2b30d34bb1aff2c72b8377..447cd2713dc002416468dc10be62e504058efd66 100644
--- a/chaos_service_common/persistence/mongodb/MongoDBHAConnectionManager.h
+++ b/chaos_service_common/persistence/mongodb/MongoDBHAConnectionManager.h
@@ -1,6 +1,6 @@
 /*
  *	MongoDBHAConnection.h
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2014 INFN, National Institute of Nuclear Physics
diff --git a/example/ChaosCLI/ChaosCLI.xcodeproj/project.pbxproj b/example/ChaosCLI/ChaosCLI.xcodeproj/project.pbxproj
index bed883ad39263b00714cd1fb27e23cc7325cf12f..43f91256449ccd2437236f8c2b713aab83dc9110 100644
--- a/example/ChaosCLI/ChaosCLI.xcodeproj/project.pbxproj
+++ b/example/ChaosCLI/ChaosCLI.xcodeproj/project.pbxproj
@@ -203,13 +203,9 @@
 				GCC_C_LANGUAGE_STANDARD = gnu99;
 				HEADER_SEARCH_PATHS = (
 					../../,
-					/usr/local/include,
 					../../usr/local/include,
 				);
-				LIBRARY_SEARCH_PATHS = (
-					/usr/local/lib,
-					"$(SRCROOT)/../../usr/local/lib",
-				);
+				LIBRARY_SEARCH_PATHS = "$(SRCROOT)/../../usr/local/lib";
 				OTHER_LDFLAGS = (
 					"-lboost_chrono",
 					"-lmemcached",
@@ -237,13 +233,9 @@
 				GCC_C_LANGUAGE_STANDARD = gnu99;
 				HEADER_SEARCH_PATHS = (
 					../../,
-					/usr/local/include,
 					../../usr/local/include,
 				);
-				LIBRARY_SEARCH_PATHS = (
-					/usr/local/lib,
-					"$(SRCROOT)/../../usr/local/lib",
-				);
+				LIBRARY_SEARCH_PATHS = "$(SRCROOT)/../../usr/local/lib";
 				OTHER_LDFLAGS = (
 					"-lboost_chrono",
 					"-lmemcached",
diff --git a/example/ChaosCLI/main.cpp b/example/ChaosCLI/main.cpp
index 08bbcbf9dad67bd58816d7bec44719cdf5ba2aee..e2bfacfc02a4070d503e5792892f79a3a1a1c4b6 100644
--- a/example/ChaosCLI/main.cpp
+++ b/example/ChaosCLI/main.cpp
@@ -34,6 +34,7 @@
 
 using namespace std;
 using namespace chaos;
+using namespace chaos::common::data;
 using namespace chaos::ui;
 using namespace bson;
 using namespace boost;
diff --git a/example/ChaosPerformanceTester/ChaosPerformanceTester.xcodeproj/project.pbxproj b/example/ChaosPerformanceTester/ChaosPerformanceTester.xcodeproj/project.pbxproj
index a69b21b92c1e29386ff05b63980149b17c8a7b74..28b15b2bb5b2a3f149f754d2ff710244a4f9b9f9 100644
--- a/example/ChaosPerformanceTester/ChaosPerformanceTester.xcodeproj/project.pbxproj
+++ b/example/ChaosPerformanceTester/ChaosPerformanceTester.xcodeproj/project.pbxproj
@@ -192,13 +192,9 @@
 				CONFIGURATION_BUILD_DIR = "$(SRCROOT)/../../usr/local/bin";
 				HEADER_SEARCH_PATHS = (
 					../../,
-					/usr/local/include,
 					../../usr/local/include,
 				);
-				LIBRARY_SEARCH_PATHS = (
-					/usr/local/lib,
-					"$(SRCROOT)/../../usr/local/lib",
-				);
+				LIBRARY_SEARCH_PATHS = "$(SRCROOT)/../../usr/local/lib";
 				OTHER_LDFLAGS = (
 					"-lboost_chrono",
 					"-lmemcached",
@@ -224,13 +220,9 @@
 				CONFIGURATION_BUILD_DIR = "$(SRCROOT)/../../usr/local/bin";
 				HEADER_SEARCH_PATHS = (
 					../../,
-					/usr/local/include,
 					../../usr/local/include,
 				);
-				LIBRARY_SEARCH_PATHS = (
-					/usr/local/lib,
-					"$(SRCROOT)/../../usr/local/lib",
-				);
+				LIBRARY_SEARCH_PATHS = "$(SRCROOT)/../../usr/local/lib";
 				OTHER_LDFLAGS = (
 					"-lboost_chrono",
 					"-lmemcached",
diff --git a/example/ChaosPerformanceTester/main.cpp b/example/ChaosPerformanceTester/main.cpp
index e4beda7b2a289b3c72fcb599640c27de31f501a8..bbf9ef4dc3d64d7272f4125446b410485ddd6e39 100644
--- a/example/ChaosPerformanceTester/main.cpp
+++ b/example/ChaosPerformanceTester/main.cpp
@@ -1,6 +1,6 @@
 /*
  *	UIToolkitCMDLineExample.cpp
- *	!CHOAS
+ *	!CHAOS
  *	Created by Bisegni Claudio.
  *
  *    	Copyright 2012 INFN, National Institute of Nuclear Physics
@@ -94,7 +94,7 @@ int main (int argc, char* argv[] ) {
 			command_sequence.push_back(1);
 		}
 		device_network_address = new CNetworkAddress();
-		device_network_address->ipPort = ChaosUIToolkit::getInstance()->getGlobalConfigurationInstance()->getOption<std::string>(OPT_NODE_ADDRESS);
+		device_network_address->ip_port = ChaosUIToolkit::getInstance()->getGlobalConfigurationInstance()->getOption<std::string>(OPT_NODE_ADDRESS);
 		chaos::common::message::PerformanceNodeChannel *perf_channel = LLRpcApi::getInstance()->getNewPerformanceChannel(device_network_address);
 		chaos::common::direct_io::DirectIOPerformanceSession *session = NULL;
 		if(!perf_channel->getPerformanceSession(&session, timeout) && session) {