Merged with the Florian Breitwieser's latest master version