ip and subnet functions added