Add Builder Pattern