fluent builder and lazy instantiation