1. consolidate UDP parsing in helper class
2. subscribe push channel after server info recevied
3. change global variable naming
4. add readable error message in hole punching case