Builder pattern implementation / Educational purpose only