Merge all changes to Master

A major update, but can someone approve it? @adieyal @petrus-jvrensburg