Separated library from example
The base step function now handles particle life