fluent-api explained