Typical design pattterns.