a reusable straight-forward class with some kinetic calculation