add Adapter
add Adapter and Decorator