removing permission sdk constraint, it breaks everything in weird ways.
check for empty destination path before trying to see if it's writeable.
legibility cleanup and comments re diff between int/external behaviour.