reconnect; refactoring;