A huge number of changes, fixes and updates