basic http client structure