Added Fluent Builder. Extracted common functionality in abstract class.