refactor related attribute support