design and pattern