added explicit disconnect