Bugs/client disconnections

Use a saner disconnect model to deal with clients coming and going