add disconnect and destroy