CIS490-75 group project, collaboration between Nathan Hardy and James Schroeder.