command line options and peer communications
better async client. code tidyup