add design-pattern