public function setAttributes($attributes)
    {
        foreach ($attributes as $k => $val) {
            if ($this->isIgnoredAttribute($k)) {
                continue;
            }

            // this is for adding new class name with
            //   +=newClass
            if( is_string($val) && strpos($val ,'+=') !== false ) {

                
                $origValue = $this->getAttributeValue($k);
                if( is_string($origValue) ) {
                    $origValue .= ' ' . substr($val,2);
                } elseif ( is_array($origValue) ) {
                    $origValue[] = substr($val,2);
                } elseif ( is_object($origValue) ) {
                    throw new Exception('Invalid Object for attribute: ' . get_class($origValue) );
                } else {
                    throw new Exception('Unknown attribute value type.');
                }
                $this->setAttributeValue($k,$origValue);
            } else {
                $this->setAttributeValue($k, $val);
            }
        }
    }