adding new design pattern