Design patterns task