add adapter, bridge, composite, decorator, flyweight