first change: just added brownian motion second change: improved accuracy, which also added air friction as a bonus third change: improved accuracy even more