added UDP functionality