add two design pattern