Assignment 3 from Design for Interactive 2.