Builder pattern implementation