Refactored common rule components into a super class