better explicit disconnection behavior