fixed device copy, restored functor