The final project submission for CSC335 spring 2013