lots of changes as per CHANGELOG.md