tp design_pattern