tree filter controller (missing from previous commits)