public function setStructure($structure = null)
    {
        if (empty($structure) || !is_array($structure)) {
            throw new \InvalidArgumentException(
                sprintf('Object structure is invalid! (must be an array, got "%s")', gettype($structure))
            );
        }
        $this->object_structure = $structure;
        return $this;
    }