try a few more uses of std::move() - untested so far