Initial refactor for version 2.0.0. Abstracted client configuration using new ClientOptions class.