rebased the extended set method and added the diff @caius wanted

Same as the last time. Added the diff and rebased to master.

Thanks for taking the time to get this in. We can finally get off of our fork :)