code: public AbstractCounterFactory init() {
          int numProcessors = Runtime.getRuntime().availableProcessors();
          counterCache = CacheBuilder.newBuilder().concurrencyLevel(Math.max(numProcessors, 8))
                  .expireAfterAccess(3600, TimeUnit.SECONDS)
                  .removalListener(new RemovalListener<String, ICounter>() {
                      @Override
                      public void onRemoval(RemovalNotification<String, ICounter> notification) {
                          ICounter counter = notification.getValue();
                          destroyCounter(counter);
                      }
                  }).build(new CacheLoader<String, ICounter>() {
                      @Override
                      public ICounter load(String key) throws Exception {
                          return createCounter(key);
                      }
                  });
          return this;
      }
docs: Initializing method.
  
  @return
  @since 0.1.1