add make_oneshot_generator_source