Add reconnecting client factory (#17).
Refactor tests (#14).
Refactor tests (#14).
Refactor tests (#14).
Refactor tests.