set/get-attribute and related functionality