finished INFO 343 Project 2