Created by: TomorrowIsAnOtherDay
This reverts commit b29a1ec1.
roll back because of the vital issue on compatibility