First pass of fluent API