CSC586C Term project 2 paper done.