https://courses.physics.illinois.edu/phys596/fa2014/StudentWork/Team1_final.pdf