furthermore, shouldn't SIZE_KNOWN_RULES be dynamically evaluated? If RULES can change, SIZE_KNOWN_RULES should change too, right?