CSCI 4126 project