Experimental (merge experimental into master)

Merge development branch (experimental) with the master branch.