add Decorator pattern
add decorator test case