Final project for CPI311