Final Submission for the CS542 Course Project