Client splitted to CachedClient and StreamClient