This reverts commit daabcf5f. This patch still had on-going discussion that should be closed before committing.