add Template Pattern, Composite Pattern, Adapter Pattern