Revert "Pulled, to be merged with master"

This reverts commit 00f94cb93f13aaa51e0cfd590f3151848f1c0cf1.
Revert "Revert "Pulled, to be merged with master""

This reverts commit e4701a7f0c7d43195dbe9cbe25b5b145f4d0a613.
Revert "Revert "Revert "Pulled, to be merged with master"""

This reverts commit 3c20d5ea58ad51f148424564fdf70e19dc4c1a7b.