overview of design patterns 6421220