public function setTextColor($color) {

        // if it is null, just remember null
        if (is_null($color)) {

            // undefined
            $this->textColor = null;

        // it is an instance of Color
        } elseif ($color instanceof Color) {

            // clone it
            $this->textColor = clone $color;

        // it is some other type    
        } else {

            // let the Color object sort it out
            $this->textColor = new Color($color);

        }

        // chaining
        return $this;

    }