Is it possible/reasonable to move these callbacks into the fact_value classes, and then rely on polymorphism to have the different facts invoke the callbacks on their members?