pattern decorator modify