cs473 semester project!