code: @SuppressWarnings("unchecked")
  	private OnDemandStatsProducer<PageInBrowserStats> getProducer(final String producerId, final String category, final String subsystem) {
  		final IStatsProducer statsProducer = ProducerRegistryFactory.getProducerRegistryInstance().getProducer(producerId);
  		// create new
  		if (statsProducer == null)
  			return createProducer(producerId, category, subsystem);
  		// use existing
  		if (statsProducer instanceof OnDemandStatsProducer && OnDemandStatsProducer.class.cast(statsProducer).getDefaultStats() instanceof PageInBrowserStats)
  			return (OnDemandStatsProducer<PageInBrowserStats>) statsProducer;
  
  		final IStatsProducer defaultStatsProducer = ProducerRegistryFactory.getProducerRegistryInstance().getProducer(getDefaultProducerId());
  		// create default
  		if (defaultStatsProducer == null)
  			return createProducer(getDefaultProducerId(), category, subsystem);
  		// use existing default
  		if (statsProducer instanceof OnDemandStatsProducer && OnDemandStatsProducer.class.cast(statsProducer).getDefaultStats() instanceof PageInBrowserStats)
  			return (OnDemandStatsProducer<PageInBrowserStats>) defaultStatsProducer;
  
  		log.warn("Can't create OnDemandStatsProducer<BrowserStats> producer with passed id: [" + producerId + "] and default id: [" + getDefaultProducerId() + "].");
  
  		return null;
  	}
docs: Returns producer by given producer id.
  If it was not found then new producer will be created.
  If existing producer is not supported then producer with default producer id will be returned.
  If producer with default producer id is not supported then will be returned {@code null}.
  
  @param producerId id of the producer
  @param category   name of the category
  @param subsystem  name of the subsystem
  @return PageInBrowserStats producer