Using Design Patterns to Create Robust Programs — Programming Keynou