created API client trait