CSCI 420 project