Bringing experimental branch up to date. Merged from master.