Lots and lots of changes. Sorry, my commits are not very concise! Must try harder ;)