Rebasing this branch

Here it is!