split out various rules to their own subsections