extend the Steps class, in which case the instance is the
extended Steps class itself ("is-a" relationship)

The "has-a" design model, in which the steps instance is passed in, is
strongly recommended over the "is-a" model as it does not have tie-ins in the
Steps class implementation.

You can define the methods that should be run by annotating them with
@Given, @When or @Then, and providing
as a value for each annotation a pattern matches the textual step. The value
is interpreted by the StepPatternParser, which by default is a
RegexPrefixCapturingPatternParser that interprets the words starting
with '$' as parameters.