public function getViewHelper($uniqueCounter, RenderingContextInterface $renderingContext, $viewHelperName)
    {
        if (Bootstrap::$staticObjectManager->getScope($viewHelperName) === Configuration::SCOPE_SINGLETON) {
            // if ViewHelper is Singleton, do NOT instantiate with NEW, but re-use it.
            $viewHelper = Bootstrap::$staticObjectManager->get($viewHelperName);
            $viewHelper->resetState();
            return $viewHelper;
        }
        if (isset($this->viewHelpersByPositionAndContext[$uniqueCounter])) {
            /** @var $viewHelpers \SplObjectStorage */
            $viewHelpers = $this->viewHelpersByPositionAndContext[$uniqueCounter];
            if ($viewHelpers->contains($renderingContext)) {
                $viewHelper = $viewHelpers->offsetGet($renderingContext);
                $viewHelper->resetState();
                return $viewHelper;
            } else {
                $viewHelperInstance = new $viewHelperName;
                $viewHelpers->attach($renderingContext, $viewHelperInstance);
                return $viewHelperInstance;
            }
        } else {
            $viewHelperInstance = new $viewHelperName;
            $viewHelpers = new \SplObjectStorage();
            $viewHelpers->attach($renderingContext, $viewHelperInstance);
            $this->viewHelpersByPositionAndContext[$uniqueCounter] = $viewHelpers;
            return $viewHelperInstance;
        }
    }