generic attribute set function