rename method
refactor: introduce interface ValueWithRulesProvider and its different
implementations