better disconnection support