Resolve #2: cache client results