implementation with capture (fail...)
cleaned code
copy ctor