refactor - abstract multi-thread udp server