Allow transfer... on top of danzilios refactor

I know, I'm sorry this is already on top of danzilio's refactor. 

If you pull in his changes I can rebase to make it cleaner , I just don't want at least give you the option to say want or not. 

I am very much interested in making this module awesome, there is just lots of outstanding pull requests and lots of forks. Is there anything I can do to help?