Each step is an "item".
Besides the "apply" logic, each item has read logic.
For clarity, not all functions from item.rs are shown.
item.rs