algo-tree uniform interface (step 1): pass CB down, receive result CB