Final project for CSC 686/7