update for new s.sock api
wrap ioloop so we can tell when it is started
cant use async socks until ioloop started
functional solution with callbacks