framework exercise 2