Project 3 of CS 141.