Pattern: Builder refactored