[Add Feature]
Add Builder pattern.