reworking with rules