add http client interfaces and exceptions