private RemoteManager(Builder init) {
    mRemoteCommunication = new RemoteCommunication();

    this.mContext = init.context;
    if (init.context != null) {
      mContext = init.context;
    }
    if (init.appPackage != null) {
      mAppPackage = init.appPackage;
    }
    mRemoteCommunication.setDataListener(init.dataListener);
    mRemoteCommunication.setCommandListener(init.commandListener);
    if (init.statsCache != null) {
      mRemoteCommunication.setStatsCache(init.statsCache);
    }
  }
 /**
  * Set a {@link StatsCache} to use during the session. This can be null and no data will be cached
  * automatically. You can also set it during the building of this class.
  *
  * @param statsCache set a cache
  */
 public void setStatsCache(StatsCache statsCache) {
   mRemoteCommunication.setStatsCache(statsCache);
 }