Caleb's Project 2 for CS369