improve stuff, rewrite stuff
Merge pull request #1 from extra-programming/gavin

Merge gavin branch into master