Final assignment for CSCI 2160