@joel380 not sure if this will impact you, but note that facts should be immutable, including as regards their equals and hash methods. If, say, a hashcode changed while rules were firing you could get strange (undefined) behavior.