Assignment 4 from Design for Interactive 2.