public function createProperty($propertyName, $_ = null)
    {
        if ($this->property) {
            $this->finishProperty();
        }

        $propertyNames = \func_get_args();

        $this->property = [];
        foreach ($propertyNames as $propertyName) {
            $property = $this->propertyClass->newInstance($propertyName);

            $event = new CreatePropertyEvent($property, $this);
            $this->dispatchEvent($event);
            $property = $event->getProperty();

            $this->property[] = $property;
        }

        if (1 === \count($this->property)) {
            $this->property = \array_shift($this->property);
        }

        return $this;
    }