self maintain index when fact changes