better check with timeout