protected function parseConfigurations(array $forms)
    {
        // get count of elements
        $countForms = count($forms[0]);

        // iterate single form(s) and prepare data
        for ($i = 0; $i < $countForms; ++$i) {

            // extract properties of form
            $properties = $this->parsePropertiesFromHtml($forms[1][$i]);

            // build new structure
            $configuration = $this->prepareStructureAndData($properties);

            // get Id
            $id = $this->getId($configuration['properties']);

            // store info about current processed form
            #$this->_currentForm = $id;

            // inject Id
            $configuration['properties']['id'] = $id;

            // build identifier for template
            $templateIdentifier = $this->buildTemplateIdentifier($id);

            // SO we know which form is processed so insert placeholder for this
            // form into input html and store it as template
            $this->template = str_replace(
                $forms[1][$i], // lookup  @was $forms[0][$i]
                $templateIdentifier, // replace
                $this->template // subject
            );

            // store in result
            $setup = [
                'form'     => [['tag' => 'form', 'properties' => $configuration['properties']]],
                'elements' => [],
            ];

            // now parse elements from inside <form>
            $elements = $this->parseFormTagsFromHtml($forms[2][$i]);

            // now parse element configuration
            $setup['elements'] = $this->parseElements($elements);

            $result[] = $setup;
        }

        return $result;
    }