public virtual void adapt(IDatasetV2 data, bool reset_state = true)
        {
            IAccumulator accumulator;

            if (!reset_state)
            {
                accumulator = combiner.Restore();
            }

            var next_data    = data.make_one_shot_iterator();
            var data_element = next_data.next();
        }