This is the pull request for the last year of work

There are plenty of changes which I admit would be difficult to review and test at once, but this is important to keep things more or less organised at this moment.