public function name($name = null) {

        if(null !== $name && false === is_string($name) && false === is_numeric($name)) {
            return trigger_error(sprintf('Argument 1 passed to %s() must be of the type string or number, "%s" given', __METHOD__, gettype($name)), E_USER_ERROR);
        }

        $this -> name = $name;
        $this -> attributes['name'] = $name;

        return $this;
    }