ADDING DESIGN PATTERNS