I found a fix - starting on line 217 - you are setting the
Device.Image.Destination - but not the destination that is local to
that method. I added in 1 line of code to make my code work:
Device.Image.destination = destination || Device.Image.destination
destination = destination ? destination : Device.Image.destination;
// throw "Destination needed"