reshuffling and some other

redid how disconnect handling works
did some others too