Convert to using a thread runner
Threading seems to be working :)
added socket as its own library
clean up of socket api
Merge branch 'threading' into development