Builder pattern implementation added