Index: /sample/pingpong/PingPong.cpp
===================================================================
--- /sample/pingpong/PingPong.cpp	(revision 3714)
+++ /sample/pingpong/PingPong.cpp	(revision 3718)
@@ -69,7 +69,11 @@
 	node->start();
 
+	// when initiating, you can define the overlay type, default is Chord [CHORD_OVERLAY]
+	SpoVNetProperties params;
+	//params.setBaseOverlayType( SpoVNetProperties::ONE_HOP_OVERLAY ); // alternative: OneHop
+
 	// initiate or join the spovnet
 	if (!isInitiator) node->join(spovnetName);
-	else node->initiate(spovnetName);
+	else node->initiate(spovnetName, params);
 
 	// ping pong started up...
Index: /source/ariba/Node.cpp
===================================================================
--- /source/ariba/Node.cpp	(revision 3714)
+++ /source/ariba/Node.cpp	(revision 3718)
@@ -64,5 +64,5 @@
 			ariba_mod.getBootstrapNode(vnetname);
 	if( ep == NULL ) {
-		std::cout << "no bootstrap node defined" << std::endl;	
+		std::cout << "no bootstrap node defined" << std::endl;
 		return;
 	}
@@ -73,7 +73,9 @@
 
 void Node::initiate(const Name& vnetname, const SpoVNetProperties& parm) {
-	utility::OverlayParameterSet ovrpset =
+	utility::OverlayParameterSet ovrpset;
+	ovrpset.setOverlayStructure(
 			(utility::OverlayParameterSet::_OverlayStructure)
-			parm.getBaseOverlayType();
+			parm.getBaseOverlayType()
+			);
 
 	spovnetId = vnetname.toSpoVNetId();
@@ -83,5 +85,5 @@
 
 	base_overlay->start( *ariba_mod.base_comm, nodeId );
-	base_overlay->createSpoVNet( spovnetId );
+	base_overlay->createSpoVNet( spovnetId, ovrpset );
 
 	ariba_mod.addBootstrapNode(vnetname,
Index: /source/ariba/SpoVNetProperties.h
===================================================================
--- /source/ariba/SpoVNetProperties.h	(revision 3714)
+++ /source/ariba/SpoVNetProperties.h	(revision 3718)
@@ -69,5 +69,4 @@
 		ONE_HOP_OVERLAY = 0,
 		CHORD_OVERLAY = 1,
-		KADEMLIA_OVERLAY = 2,
 	};
 
@@ -131,5 +130,4 @@
 	}
 
-
 	/**
 	 * Returns the overlay type.
@@ -140,5 +138,4 @@
 		this->type = type;
 	}
-
 
 	/**
Index: /source/ariba/overlay/BaseOverlay.cpp
===================================================================
--- /source/ariba/overlay/BaseOverlay.cpp	(revision 3714)
+++ /source/ariba/overlay/BaseOverlay.cpp	(revision 3718)
@@ -726,8 +726,14 @@
 		joiningNodes.push_back( overlayMsg->getSourceNode() );
 
+		//
 		// send back our spovnetid, default overlay parameters, join allow
 		// result, and ourself as the end-point to bootstrap the overlay against
+		//
+
+		assert( overlayInterface != NULL );
+		OverlayParameterSet parameters = overlayInterface->getParameters();
+
 		OverlayMsg retmsg( OverlayMsg::OverlayMessageTypeJoinReply, nodeId );
-		JoinReply replyMsg( spovnetId, OverlayParameterSet::DEFAULT,
+		JoinReply replyMsg( spovnetId, parameters,
 					allow, getEndpointDescriptor() );
 
Index: /source/ariba/overlay/modules/OverlayFactory.cpp
===================================================================
--- /source/ariba/overlay/modules/OverlayFactory.cpp	(revision 3714)
+++ /source/ariba/overlay/modules/OverlayFactory.cpp	(revision 3718)
@@ -53,12 +53,10 @@
 
 	switch( param.getOverlayStructure() ){
-		case OverlayParameterSet::OverlayStructureOneHop:
-			return new OneHop( baseoverlay, nodeid, routeReceiver );
 
 		case OverlayParameterSet::OverlayStructureChord:
-			return new Chord( baseoverlay, nodeid, routeReceiver );
+			return new Chord( baseoverlay, nodeid, routeReceiver, param );
 
-		case OverlayParameterSet::OverlayStructureKademlia:
-			return NULL;
+		case OverlayParameterSet::OverlayStructureOneHop:
+			return new OneHop( baseoverlay, nodeid, routeReceiver, param );
 
 		default:
Index: /source/ariba/overlay/modules/OverlayInterface.cpp
===================================================================
--- /source/ariba/overlay/modules/OverlayInterface.cpp	(revision 3714)
+++ /source/ariba/overlay/modules/OverlayInterface.cpp	(revision 3718)
@@ -46,7 +46,8 @@
 ServiceID OverlayInterface::OVERLAY_SERVICE_ID(0);
 
-OverlayInterface::OverlayInterface(BaseOverlay& _baseoverlay,
-		const NodeID& _nodeid, OverlayStructureEvents* _eventsReceiver) :
-	baseoverlay(_baseoverlay), nodeid(_nodeid), eventsReceiver(_eventsReceiver) {
+OverlayInterface::OverlayInterface(BaseOverlay& _baseoverlay, const NodeID& _nodeid,
+			OverlayStructureEvents* _eventsReceiver, OverlayParameterSet _parameters) :
+	baseoverlay(_baseoverlay), nodeid(_nodeid),
+	eventsReceiver(_eventsReceiver), parameters(_parameters) {
 
 	_baseoverlay.bind(this, OVERLAY_SERVICE_ID);
@@ -82,3 +83,7 @@
 }
 
+const OverlayParameterSet& OverlayInterface::getParameters() const {
+	return parameters;
+}
+
 }} // namespace ariba, overlay
Index: /source/ariba/overlay/modules/OverlayInterface.h
===================================================================
--- /source/ariba/overlay/modules/OverlayInterface.h	(revision 3714)
+++ /source/ariba/overlay/modules/OverlayInterface.h	(revision 3718)
@@ -45,4 +45,5 @@
 #include "ariba/utility/types/NodeID.h"
 #include "ariba/utility/types/ServiceID.h"
+#include "ariba/utility/types/OverlayParameterSet.h"
 
 using ariba::CommunicationListener;
@@ -51,4 +52,5 @@
 using ariba::utility::NodeID;
 using ariba::utility::ServiceID;
+using ariba::utility::OverlayParameterSet;
 
 namespace ariba {
@@ -75,5 +77,7 @@
 			BaseOverlay& _baseoverlay,
 			const NodeID& _nodeid,
-			OverlayStructureEvents* _eventsReceiver );
+			OverlayStructureEvents* _eventsReceiver,
+			OverlayParameterSet _parameters
+			);
 
 	/**
@@ -154,8 +158,14 @@
 			const LinkID& lnk = LinkID::UNSPECIFIED);
 
+
+	const OverlayParameterSet& getParameters() const;
+
 protected:
 
 	/// Reference to an active base overlay
 	BaseOverlay& baseoverlay;
+
+	/// The parameters of the overlay structure
+	OverlayParameterSet parameters;
 
 	/// The node identifier to use with this overlay
Index: /source/ariba/overlay/modules/chord/Chord.cpp
===================================================================
--- /source/ariba/overlay/modules/chord/Chord.cpp	(revision 3714)
+++ /source/ariba/overlay/modules/chord/Chord.cpp	(revision 3718)
@@ -53,6 +53,6 @@
 
 Chord::Chord(BaseOverlay& _baseoverlay, const NodeID& _nodeid,
-		OverlayStructureEvents* _eventsReceiver) :
-	OverlayInterface(_baseoverlay, _nodeid, _eventsReceiver) {
+		OverlayStructureEvents* _eventsReceiver, const OverlayParameterSet& param) :
+	OverlayInterface(_baseoverlay, _nodeid, _eventsReceiver, param) {
 
 	// create routing table
Index: /source/ariba/overlay/modules/chord/Chord.h
===================================================================
--- /source/ariba/overlay/modules/chord/Chord.h	(revision 3714)
+++ /source/ariba/overlay/modules/chord/Chord.h	(revision 3718)
@@ -89,5 +89,5 @@
 public:
 	Chord(BaseOverlay& _baseoverlay, const NodeID& _nodeid,
-			OverlayStructureEvents* _eventsReceiver);
+			OverlayStructureEvents* _eventsReceiver, const OverlayParameterSet& param);
 	virtual ~Chord();
 
Index: /source/ariba/overlay/modules/onehop/OneHop.cpp
===================================================================
--- /source/ariba/overlay/modules/onehop/OneHop.cpp	(revision 3714)
+++ /source/ariba/overlay/modules/onehop/OneHop.cpp	(revision 3718)
@@ -49,6 +49,7 @@
 use_logging_cpp( OneHop );
 
-OneHop::OneHop(BaseOverlay& _baseoverlay, const NodeID& _nodeid, OverlayStructureEvents* _eventsReceiver)
-	: 	OverlayInterface( _baseoverlay, _nodeid, _eventsReceiver ),
+OneHop::OneHop(BaseOverlay& _baseoverlay, const NodeID& _nodeid,
+		OverlayStructureEvents* _eventsReceiver, const OverlayParameterSet& param)
+	: 	OverlayInterface( _baseoverlay, _nodeid, _eventsReceiver, param ),
 		state		( OneHopStateInvalid ),
 		bootstrapLink	( LinkID::UNSPECIFIED ),
Index: /source/ariba/overlay/modules/onehop/OneHop.h
===================================================================
--- /source/ariba/overlay/modules/onehop/OneHop.h	(revision 3714)
+++ /source/ariba/overlay/modules/onehop/OneHop.h	(revision 3718)
@@ -55,5 +55,5 @@
 public:
 	OneHop(BaseOverlay& _overlay, const NodeID& _nodeid,
-			OverlayStructureEvents* _eventsReceiver);
+			OverlayStructureEvents* _eventsReceiver, const OverlayParameterSet& param);
 
 	virtual ~OneHop();
Index: /source/ariba/utility/system/StartupWrapper.cpp
===================================================================
--- /source/ariba/utility/system/StartupWrapper.cpp	(revision 3714)
+++ /source/ariba/utility/system/StartupWrapper.cpp	(revision 3718)
@@ -103,5 +103,5 @@
 	{
 		log4cxx::LoggerPtr logger(log4cxx::Logger::getRootLogger());
-		logger->setLevel(log4cxx::Level::getDebug());
+		logger->setLevel(log4cxx::Level::getInfo());
 	}
 
Index: /source/ariba/utility/types/OverlayParameterSet.cpp
===================================================================
--- /source/ariba/utility/types/OverlayParameterSet.cpp	(revision 3714)
+++ /source/ariba/utility/types/OverlayParameterSet.cpp	(revision 3718)
@@ -55,5 +55,5 @@
 }
 
-void OverlayParameterSet::getOverlayStructure(OverlayStructure _structure){
+void OverlayParameterSet::setOverlayStructure(OverlayStructure _structure){
 	structure = (uint8_t)_structure;
 }
Index: /source/ariba/utility/types/OverlayParameterSet.h
===================================================================
--- /source/ariba/utility/types/OverlayParameterSet.h	(revision 3714)
+++ /source/ariba/utility/types/OverlayParameterSet.h	(revision 3718)
@@ -55,5 +55,4 @@
 		OverlayStructureOneHop   = 0,
 		OverlayStructureChord    = 1,
-		OverlayStructureKademlia = 2,
 	} OverlayStructure;
 
@@ -62,5 +61,5 @@
 
 	OverlayStructure getOverlayStructure() const;
-	void getOverlayStructure( OverlayStructure _structure );
+	void setOverlayStructure( OverlayStructure _structure );
 
 private:
