Final Prject CS246