diff --git a/mininet/Chart.yaml b/mininet/Chart.yaml
index 2e43e25..f21e28d 100644
--- a/mininet/Chart.yaml
+++ b/mininet/Chart.yaml
@@ -17,4 +17,4 @@
 appVersion: "1.0"
 description: A Helm chart for Mininet
 name: mininet
-version: 0.3.1
+version: 0.4.0
diff --git a/mininet/toposcripts/topo.py b/mininet/toposcripts/topo.py
index 0c9c7cf..a65085d 100644
--- a/mininet/toposcripts/topo.py
+++ b/mininet/toposcripts/topo.py
@@ -22,42 +22,61 @@
 from mininet.log import setLogLevel, info, error
 from mininet.net import Mininet
 from mininet.link import Intf
-from mininet.topo import SingleSwitchTopo
-from mininet.node import OVSSwitch, RemoteController
+from mininet.topo import Topo, SingleSwitchTopo
+from mininet.node import OVSSwitch, Controller, RemoteController
+from mininet.nodelib import LinuxBridge
 from functools import partial
 from mininet.util import quietRun
 
 if __name__ == '__main__':
     setLogLevel( 'info' )
 
-    info( '*** Installing required software' )
+    info( '*** Installing required software\n' )
     print quietRun( 'apt-get update' )
-    print quietRun( 'apt-get -y install dnsmasq ethtool' )
+    print quietRun( 'apt-get -y install dnsmasq ethtool wget pimd bridge-utils' )
+    print quietRun( 'wget https://github.com/troglobit/mcjoin/releases/download/v2.4/mcjoin_2.4_amd64.deb' )
+    print quietRun( 'dpkg -i mcjoin_2.4_amd64.deb' )
 
-    info( '*** Creating network\n' )
     print quietRun( 'ovs-vsctl set Open_vSwitch . other_config:vlan-limit={{ .Values.vlanMatchDepth }}' )
     OVSSwitch13 = partial( OVSSwitch, protocols='OpenFlow13' )
     controllerIp = socket.gethostbyname( '{{ .Values.onosOpenflowSvc }}' )
-    net = Mininet( topo=SingleSwitchTopo(1),
-                   controller=lambda name: RemoteController( name, ip=controllerIp, port=6653 ),
-                   switch=OVSSwitch13
-    )
 
-    switch = net.switches[ 0 ]
-    info( '*** Adding hardware interface eth1 to switch', switch.name, '\n' )
-    _intf = Intf( 'eth1', node=switch )
+    net = Mininet( topo=None )
+
+    info( '*** Adding controllers\n' )
+    onos = net.addController( name='onos', controller=RemoteController, ip=controllerIp, port=6653 )
+
+    info( '*** Adding switches\n' )
+    s1 = net.addSwitch( name='s1', cls=OVSSwitch13 )
+    s2 = net.addSwitch( 's2', cls=LinuxBridge )
+
+    info( '*** Creating hosts\n' )
+    h1 = net.addHost( 'h1', ip='10.0.0.1/24')
+    h2 = net.addHost( 'h2', ip='10.1.0.2/24')
+
+    # Topology: pon1 - eth1 - s1 - h1 - s2 - h2
+    net.addLink( h1, s1 )
+    net.addLink( h1, s2 )
+    net.addLink( h2, s2 )
+
+    info( '*** Adding hardware interface eth1 to switch %s\n' % s1.name)
+    _intf = Intf( 'eth1', node=s1 )
 
     info( '*** Turning off checksum offloading for eth1\n' )
     print quietRun( 'ethtool -K eth1 tx off rx off' )
 
-    bgphost = net.hosts [ 0 ]
-    info( '*** Adding VLAN interface to host\n')
-    bgphost.cmd( 'ip link add link h1-eth0 name h1-eth0.222 type vlan proto 802.1Q id 222' )
-    bgphost.cmd( 'ip link add link h1-eth0.222 name h1-eth0.222.111 type vlan proto 802.1Q id 111' )
-    bgphost.cmd( 'ifconfig h1-eth0.222 up' )
-    bgphost.cmd( 'ifconfig h1-eth0.222.111 up' )
-    bgphost.cmd( 'ifconfig h1-eth0.222.111 172.18.0.10/24' )
-    bgphost.cmd( 'dnsmasq --dhcp-range=172.18.0.50,172.18.0.150,12h' )
+    info( '*** Adding VLAN interface to host %s\n' % h1.name)
+    base = "%s-eth0" % h1.name
+    h1.cmd( 'ifconfig %s-eth1 10.1.0.1/24 up' % h1.name)
+    h1.cmd( 'ip link add link %s name %s.222 type vlan proto 802.1Q id 222' % (base, base))
+    h1.cmd( 'ip link add link %s.222 name %s.222.111 type vlan proto 802.1Q id 111' % (base, base))
+    h1.cmd( 'ifconfig %s.222 up' % base)
+    h1.cmd( 'ifconfig %s.222.111 up' % base)
+    h1.cmd( 'ifconfig %s.222.111 172.18.0.10/24' % base)
+    h1.cmd( 'dnsmasq --dhcp-range=172.18.0.50,172.18.0.150,12h' )
+
+    onos.start()
+    s1.start( [onos] )
 
     net.start()
     CLI( net )
