completed up to exercise 1.1.4