using reference_wrapper; not holding state anymore
Broken