only use necessary assignments for each rule (issue #89)