add Rule and fluent api