refactoring for BTRules