Final project for CISC437