Add connection connection disconnection methods

Targets #650.
Still missing:
 * [x] Locking
Sure you do not want another flag for this instead of using the `is_init` flag?