Todevice reversion

This set of changes reverts some recent changes to ToDevice and fixes the original issue a different way.  I feel like this is likely to be higher performance.