This file's logic was ported and refactored into the Rule class