Optimized a lot, user can disconnect from within client