http://michele.usc.edu/java/kinetics/simulator.html