exercise 4 from Design for Interactive 2