Term project for CMPSC 221