Library for CMSC423 project 2