add disconnect functional