Refactored to introduce JBehaveReader and GherkinWriter