class ImpressionStorageClient {

  public Single<Boolean> isImpressed(CampaignProto.ThickContent content) {
    String campaignId =
        content.getPayloadCase().equals(CampaignProto.ThickContent.PayloadCase.VANILLA_PAYLOAD)
            ? content.getVanillaPayload().getCampaignId()
            : content.getExperimentalPayload().getCampaignId();
    return getAllImpressions()
        .map(CampaignImpressionList::getAlreadySeenCampaignsList)
        .flatMapObservable(Observable::fromIterable)
        .map(CampaignImpression::getCampaignId)
        .contains(campaignId);
  }

  @Inject  ImpressionStorageClient(@ImpressionStore ProtoStorageClient storageClient);

}