broke multicast code into own module