Final version for Senior Project submission