CMSC701 term project