refactor dhcp function