decorator pattern(2)