implemented setAttr