The StepCandidate class does not expose the actual Class type for the implementing class type. In order for a caller to find this out, it must instantiate the step using getStepsInstance() and then call getClass().
This creates a problem when integrating with the jbehave-junit-runner as described in this issue: https://github.com/codecentric/jbehave-junit-runner/issues/29.
That issue cannot be resolved unless the caller can ask for the class type without instantiating it. Code showing an example of this problem is attached below.