decoration pattern example 1complete