cmsc 426 project 3