Merged latest master into this year old branch. Lots of merge conflicts. Not 100% sure if they are right but going to play around + test this.