Index: source/ariba/interface/ServiceInterface.cpp
===================================================================
--- source/ariba/interface/ServiceInterface.cpp	(revision 2390)
+++ source/ariba/interface/ServiceInterface.cpp	(revision 2473)
@@ -38,28 +38,12 @@
 
 #include "ServiceInterface.h"
-#include "ariba/interface/AribaContext.h"
 
 namespace ariba {
 namespace interface {
 
-ServiceInterface::ServiceInterface() : overlay( NULL ){
+ServiceInterface::ServiceInterface() {
 }
 
 ServiceInterface::~ServiceInterface(){
-	if( overlay != NULL )
-		overlay->unbind( this, serviceid );
-}
-
-bool ServiceInterface::initialize( AribaContext* _ctx, const ServiceID& _serviceid ){
-	return initialize( &_ctx->getOverlay(), _serviceid );
-}
-
-bool ServiceInterface::initialize( BaseOverlay* _overlay, const ServiceID& _serviceid ){
-	if( _overlay == NULL ) return false;
-
-	overlay = _overlay;
-	serviceid = _serviceid;
-
-	return overlay->bind( this, serviceid);
 }
 
Index: source/ariba/interface/ServiceInterface.h
===================================================================
--- source/ariba/interface/ServiceInterface.h	(revision 2390)
+++ source/ariba/interface/ServiceInterface.h	(revision 2473)
@@ -67,6 +67,4 @@
 namespace interface {
 
-class AribaContext;
-
 class ServiceInterface : public OverlayEvents, MessageReceiver {
 	friend class ariba::overlay::BaseOverlay;
@@ -74,7 +72,4 @@
 	ServiceInterface();
 	virtual ~ServiceInterface();
-
-	bool initialize( AribaContext* _ctx, const ServiceID& _serviceid );
-	bool initialize( BaseOverlay* _overlay, const ServiceID& _serviceid );
 
 protected:
@@ -96,8 +91,4 @@
 
 	virtual bool receiveMessage( const Message* message, const LinkID& link, const NodeID& node );
-
-private:
-	BaseOverlay* overlay;
-	ServiceID serviceid;
 };
 
Index: source/ariba/interface/UnderlayAbstraction.cpp
===================================================================
--- source/ariba/interface/UnderlayAbstraction.cpp	(revision 2390)
+++ source/ariba/interface/UnderlayAbstraction.cpp	(revision 2473)
@@ -86,11 +86,4 @@
 }
 
-void UnderlayAbstraction::destroySpoVNet(AribaContext* ctx) {
-	ctx->getOverlay().leaveSpoVNet();
-	delete &ctx->getOverlay();
-	delete &ctx->getBaseCommunication();
-	delete ctx;
-}
-
 AribaContext* UnderlayAbstraction::joinSpoVNet(const SpoVNetID& spovnetid, const EndpointDescriptor& bootstrapnode, const NodeID& nodeid, const NetworkLocator* locallocator, const uint16_t localport) {
 
@@ -107,5 +100,8 @@
 
 void UnderlayAbstraction::leaveSpoVNet(AribaContext* ctx) {
-	destroySpoVNet( ctx );
+	ctx->getOverlay().leaveSpoVNet();
+	delete &ctx->getOverlay();
+	delete &ctx->getBaseCommunication();
+	delete ctx;
 }
 
Index: source/ariba/interface/UnderlayAbstraction.h
===================================================================
--- source/ariba/interface/UnderlayAbstraction.h	(revision 2390)
+++ source/ariba/interface/UnderlayAbstraction.h	(revision 2473)
@@ -79,6 +79,4 @@
 	);
 
-	void destroySpoVNet( AribaContext* ctx );
-
 	AribaContext* joinSpoVNet(
 		const SpoVNetID& spovnetid,
