refactored methods of rules