set decorator pattern exapmle