Add Copy Options

Cleaned up some things for readability and added the ability to have the copy be an option with a path or a function.

Sorry about all the commits, having some issues...

this should fix #6, #7, #9, and replace #12