Final project for CPE 123.