function setName($name)
    {
        if ($this->name !== null)
            throw new \Exception(sprintf(
                "Event with name (%s) are immutable. can`t set name (%s)."
                , $this->name, \Poirot\Std\flatten($name)
            ));

        $this->name = (string) $name;
        return $this;
    }