Added an AbstractApiClient class to provide a uniform API wrapper interface