attributes refactor