exploring of design patterns