add disconnect callback