add fluent API