public function value($value = null) {

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

        $this -> value = (string) $value;
        $this -> attributes['value'] = (string) $value;

        return $this;
    }