Latest GUI stuff and no more 'dynamic'

- [ ] Oh noes. I would much rather this throw an exception and we catch it rather than merely have it return true/false. I guarantee that in the future I'm going to write code that *forgets* to check the return value, and then we'll end up with the most difficult to find bug when it fails to copy a file but thinks it worked all along.