Project adapted from CU Boulder's CSCI3753 Asssignment #2: Readme for that project can be found here: https://raw.github.com/asayler/CU-CS3753-PA2/master/README