Awesome concept of Step Builder pattern from Marco Castigliego http://rdafbn.blogspot.co.uk/2012/07/step-builder-pattern_28.html