Upstream

Fixes, improvements and some functions I need :)
Just ask if something isn't clear.

Also calling a branch experimental but building releases from it is somewhat strange.. just push your stuff to the master branch, and don't push broken stuff at all :D
And you might want to tag your releases...