Framework for exercise 5