...exercise 4; work in progress;