anchor.diff:  
   You can use the Journey Pattern with Serenity BDD in JUnit, Cucumber or JBehave. For simplicity, the examples will be using JUnit.
   
  -=== The Journey Pattern in Action ===
  +=== Introducing the Journey Pattern ===
   
   Suppose we are implementing the “Add new todo items” feature. This feature could have and acceptance criteria along the lines of “Should be able to add a new todo item”. If we were testing these scenarios manually, we could create test plans like the following:
  -* Should be able to add a new todo item
  -** Open the application
  -** Add an item called ‘Buy some milk’
  -** The ‘Buy some milk’ item should appear in the todo list
  +
  + * Should be able to add a new todo item
  + ** Open the application
  + ** Add an item called ‘Buy some milk’
  + ** The ‘Buy some milk’ item should appear in the todo list
   
   Using the Journey Pattern, we could write this code very naturally like this:
   
  
positive.code: 
  Tasks are just objects that implement the `Task` interface, and need to implement the `performAs(actor)` method. In fact, you can think of any Task class as basically a `performAs()` method alongside a supporting cast of helper methods.
  
  ==== Tasks can be created using annotated fields or builders ====
  
  To do its reporting magic, Serenity BDD needs to instrument the task and action objects used during the tests. The simplest way to do arrange this is to let Serenity create it for you, just like any other Serenity step library, using the @Steps annotation. In the following code snippet, Serenity will instantiate the openTheApplication field for you, so that James can use it to open the application:
  
  
negative.code: }
  ----
  
  === Tasks can be used as building blocks by other tasks ===
  
  It is easy to reuse tasks in other, higher level tasks. For example, the sample project uses a AddTodoItems task to add a number of todo items to the list, like this:
  
  