anchor.diff:  
   ** `client` This is of type http://gocardless.github.io/gocardless-pro-java/com/gocardless/GoCardlessClient.html[GoCardlessClient]. This is a GoCardless specific class that can be used to access the GoCardless API
   
  -* The constructor simply initializes the fields with the values passed in. In addition, it also creates a GoCardless client and initializes the `client` field 
  +* The constructor simply initializes the fields with the values passed in. In addition, it also creates a GoCardless client and initializes the `client` field.
   
   Within this class, we need to implement the `buildFormDescriptor`, `addPaymentMethod` and `purchasePayment` as explained in the <<using_gocardless_from_killbill, "Using GoCardless from Kill Bill">> section above. 
   
  
positive.code: ----
  
  
  * The servlet is mapped to the `/checkout` path. Thus, a client application needs to make a request to this path to invoke the servlet
  
  * The `createSession` accepts properties corresponding to `clock` and `goCardlessPaymentPluginApi`. These are injected via the `GoCardlessActivator` class as explained below  
  
  * It then creates `PluginProperty` objects corresponding to the values passed in as parameters
  
  * Finally, it invokes the `GoCardlessPlugin#buildFormDescriptor` method
  
  
  ==== Step 9 - Creating GoCardlessActivator
  
negative.code: 
  * Like the other methods, the `purchasePayment` method accepts  `Iterable<PluginProperty> properties` as a parameter. 
  
  * In addition, it also accepts parameters corresponding to `amount` (specifies the amount to charge the customer) and `currency` (specifies the currency to be used).
  
  * If you recall, the `addPaymentMethod` stores the *mandate id* in the Kill Bill database. This is first retrieved and assigned to `mandate`.
  
  * Next, the `idempotencyKey` is retrieved from the `properties` passed in. The  `idempotencyKey` is a GoCardless specific value. As per the GoCardless documentation, their API will ensure this payment is only ever created once per `idempotencyKey`. So a client application could specify `kbPaymentId` as the `idempotencyKey` to ensure at most a single payment is created per `kbPaymentId`.
  
  