https://courses.physics.illinois.edu/phys596/fa2013/StudentWork/Team8_Final.pdf