use a generator for break_simple_sub