moar functor tweaking, dont need reference wrapper anymore