tp2_design_patterns