apiculture: recursive onchange