BaseClient/DefaultClient abstraction

Client was actually what should've been the DefaultClient