CMPEN 431 final project