A fluent interface is normally implemented by using method cascading (concretely method chaining) to relay the instruction context of a subsequent call (but a fluent interface entails more than just method chaining ). Generally, the context is
defined through the return value of a called method
self-referential, where the new context is equivalent to the last context
terminated through the return of a void context.