All my suggested changes

Keeping too many opened pull requests starts to be a drag. So after conversation with Sean B. Palmer, I have squashed all changes into one branch.