Revert "Original version"

This reverts commit 4b543116eda1de8fecdd4382fcb304857c82a730.
Revert "Revert "Original version""

This reverts commit 1b48436b4dabcb72d2c6f0a6497c8f9d733ae986.