working on async disconnect