diff --git a/openflow b/openflow
index 07261df..316ac0f 100755
--- a/openflow
+++ b/openflow
@@ -375,10 +375,10 @@
                 module = of_controller_module
             else:
                 module = of_controller_type
-            module_info = imp.find_module(module)
-            
-            of_conn = imp.load_module("of_conn", *module_info)
+
             try:
+                pkg = __import__("osm_openvim." + module)
+                of_conn = getattr(pkg, module)
                 ofconnector = of_conn.OF_conn(params)
             except Exception as e: 
                 print "Cannot open the Openflow controller '%s': %s" % (type(e).__name__, str(e))
diff --git a/osm_openvim/host_thread.py b/osm_openvim/host_thread.py
index 0cf2691..1f8fdb4 100644
--- a/osm_openvim/host_thread.py
+++ b/osm_openvim/host_thread.py
@@ -628,7 +628,7 @@
             elif content[0]['provider'][0:3] == "OVS":
                 vlan = content[0]['provider'].replace('OVS:', '')
                 text += self.tab() + "<interface type='bridge'>" + \
-                        self.inc_tab() + "<source bridge='ovim-" + vlan + "'/>"
+                        self.inc_tab() + "<source bridge='ovim-" + str(vlan) + "'/>"
             else:
                 return -1, 'Unknown Bridge net provider ' + content[0]['provider']
             if model!=None:
@@ -751,7 +751,7 @@
         if self.test:
             return True
         try:
-            port_name = 'ovim-' + vlan
+            port_name = 'ovim-' + str(vlan)
             command = 'sudo ovs-vsctl del-port br-int ' + port_name
             self.logger.debug("command: " + command)
             (_, stdout, _) = self.ssh_conn.exec_command(command)
@@ -779,7 +779,7 @@
         if not self.is_dhcp_port_free(vlan, net_uuid):
             return True
         try:
-            net_namespace = 'ovim-' + vlan
+            net_namespace = 'ovim-' + str(vlan)
             dhcp_path = os.path.join(dhcp_path, net_namespace)
             pid_file = os.path.join(dhcp_path, 'dnsmasq.pid')
 
@@ -852,8 +852,8 @@
         if self.test:
             return True
         try:
-            port_name = 'ovim-' + vlan
-            command = 'sudo ovs-vsctl add-port br-int ' + port_name + ' tag=' + vlan
+            port_name = 'ovim-' + str(vlan)
+            command = 'sudo ovs-vsctl add-port br-int ' + port_name + ' tag=' + str(vlan)
             self.logger.debug("command: " + command)
             (_, stdout, _) = self.ssh_conn.exec_command(command)
             content = stdout.read()
@@ -909,8 +909,8 @@
         if self.test:
             return True
         try:
-            port_name = 'ovim-' + vlan
-            command = 'sudo ip link set dev veth0-' + vlan + ' down'
+            port_name = 'ovim-' + str(vlan)
+            command = 'sudo ip link set dev veth0-' + str(vlan) + ' down'
             self.logger.debug("command: " + command)
             (_, stdout, _) = self.ssh_conn.exec_command(command)
             # content = stdout.read()
@@ -952,7 +952,7 @@
         if self.test:
             return True
         try:
-            port_name = 'ovim-' + vlan
+            port_name = 'ovim-' + str(vlan)
             command = 'sudo brctl show | grep ' + port_name
             self.logger.debug("command: " + command)
             (_, stdout, _) = self.ssh_conn.exec_command(command)
@@ -1010,7 +1010,7 @@
         if self.test:
             return True
 
-        net_namespace = 'ovim-' + vlan
+        net_namespace = 'ovim-' + str(vlan)
         dhcp_path = os.path.join(dhcp_path, net_namespace)
         dhcp_hostsdir = os.path.join(dhcp_path, net_namespace)
 
@@ -1054,7 +1054,7 @@
         if self.test:
             return False
         try:
-            net_namespace = 'ovim-' + vlan
+            net_namespace = 'ovim-' + str(vlan)
             dhcp_path = os.path.join(dhcp_path, net_namespace)
             dhcp_hostsdir = os.path.join(dhcp_path, net_namespace)
 
@@ -1094,8 +1094,8 @@
         if self.test:
             return True
         try:
-            interface = 'tap-' + vlan
-            net_namespace = 'ovim-' + vlan
+            interface = 'tap-' + str(vlan)
+            net_namespace = 'ovim-' + str(vlan)
             dhcp_path = os.path.join(dhcp_path, net_namespace)
             leases_path = os.path.join(dhcp_path, "dnsmasq.leases")
             pid_file = os.path.join(dhcp_path, 'dnsmasq.pid')
@@ -1149,18 +1149,18 @@
         if self.test:
             return True
         try:
-            net_namespace = 'ovim-' + vlan
-            command = 'sudo ovs-vsctl del-port br-int ovs-tap-' + vlan
+            net_namespace = 'ovim-' + str(vlan)
+            command = 'sudo ovs-vsctl del-port br-int ovs-tap-' + str(vlan)
             self.logger.debug("command: " + command)
             (_, stdout, _) = self.ssh_conn.exec_command(command)
             content = stdout.read()
 
-            command = 'sudo ip netns exec ' + net_namespace + ' ip link set dev tap-' + vlan + ' down'
+            command = 'sudo ip netns exec ' + net_namespace + ' ip link set dev tap-' + str(vlan) + ' down'
             self.logger.debug("command: " + command)
             (_, stdout, _) = self.ssh_conn.exec_command(command)
             content = stdout.read()
 
-            command = 'sudo ip link set dev ovs-tap-' + vlan + ' down'
+            command = 'sudo ip link set dev ovs-tap-' + str(vlan) + ' down'
             self.logger.debug("command: " + command)
             (_, stdout, _) = self.ssh_conn.exec_command(command)
             content = stdout.read()
@@ -1170,11 +1170,11 @@
                 self.ssh_connect()
             return False
 
-    def create_dhcp_interfaces(self, vlan, ip, netmask):
+    def create_dhcp_interfaces(self, vlan, ip_listen_address, netmask):
         """
         Create a linux bridge with STP active
         :param vlan: segmentation id
-        :param ip: Ip included in the dhcp range for the tap interface living in namesapce side
+        :param ip_listen_address: Listen Ip address for the dhcp service, the tap interface living in namesapce side
         :param netmask: dhcp net CIDR
         :return: True if success
         """
@@ -1182,41 +1182,41 @@
         if self.test:
             return True
         try:
-            net_namespace = 'ovim-' + vlan
-            namespace_interface = 'tap-' + vlan
+            net_namespace = 'ovim-' + str(vlan)
+            namespace_interface = 'tap-' + str(vlan)
 
             command = 'sudo ip netns add ' + net_namespace
             self.logger.debug("command: " + command)
             (_, stdout, _) = self.ssh_conn.exec_command(command)
             content = stdout.read()
 
-            command = 'sudo ip link add tap-' + vlan + ' type veth peer name ovs-tap-' + vlan
+            command = 'sudo ip link add tap-' + str(vlan) + ' type veth peer name ovs-tap-' + str(vlan)
             self.logger.debug("command: " + command)
             (_, stdout, _) = self.ssh_conn.exec_command(command)
             content = stdout.read()
 
-            command = 'sudo ovs-vsctl add-port br-int ovs-tap-' + vlan + ' tag=' + vlan
+            command = 'sudo ovs-vsctl add-port br-int ovs-tap-' + str(vlan) + ' tag=' + str(vlan)
             self.logger.debug("command: " + command)
             (_, stdout, _) = self.ssh_conn.exec_command(command)
             content = stdout.read()
 
-            command = 'sudo ip link set tap-' + vlan + ' netns ' + net_namespace
+            command = 'sudo ip link set tap-' + str(vlan) + ' netns ' + net_namespace
             self.logger.debug("command: " + command)
             (_, stdout, _) = self.ssh_conn.exec_command(command)
             content = stdout.read()
 
-            command = 'sudo ip netns exec ' + net_namespace + ' ip link set dev tap-' + vlan + ' up'
+            command = 'sudo ip netns exec ' + net_namespace + ' ip link set dev tap-' + str(vlan) + ' up'
             self.logger.debug("command: " + command)
             (_, stdout, _) = self.ssh_conn.exec_command(command)
             content = stdout.read()
 
-            command = 'sudo ip link set dev ovs-tap-' + vlan + ' up'
+            command = 'sudo ip link set dev ovs-tap-' + str(vlan) + ' up'
             self.logger.debug("command: " + command)
             (_, stdout, _) = self.ssh_conn.exec_command(command)
             content = stdout.read()
 
             command = 'sudo  ip netns exec ' + net_namespace + ' ' + ' ifconfig  ' + namespace_interface \
-                      + ' ' + ip + ' netmask ' + netmask
+                      + ' ' + ip_listen_address + ' netmask ' + netmask
             self.logger.debug("command: " + command)
             (_, stdout, _) = self.ssh_conn.exec_command(command)
             content = stdout.read()
diff --git a/osm_openvim/ovim.py b/osm_openvim/ovim.py
index fb34552..b0fa78f 100755
--- a/osm_openvim/ovim.py
+++ b/osm_openvim/ovim.py
@@ -142,11 +142,11 @@
 
             ips = IPNetwork(cidr)
             if "dhcp_first_ip" not in network:
-                network["dhcp_first_ip"] = str(ips[2])
+                network["dhcp_first_ip"] = str(ips[3])
             if "dhcp_last_ip" not in network:
                 network["dhcp_last_ip"] = str(ips[-2])
             if "gateway_ip" not in network:
-                network["gateway_ip"] = str(ips[1])
+                network["gateway_ip"] = str(ips[2])
 
             return True
         else:
@@ -1382,7 +1382,7 @@
 
         controller_host = self.get_dhcp_controller()
         controller_host.create_linux_bridge(vlan)
-        controller_host.create_dhcp_interfaces(vlan, first_ip, dhcp_netmask)
+        controller_host.create_dhcp_interfaces(vlan, gateway, dhcp_netmask)
         controller_host.launch_dhcp_server(vlan, ip_range, dhcp_netmask, dhcp_path, gateway)
 
 if __name__ == "__main__":
