Revert "Revert "patch1""

This reverts commit 82f3ff12bc0fc63902c8363d94c3dd37c1436ff4.
Revert "Revert "patch2""

This reverts commit 0dc6db751a520ff4c0276cdde83158d78eb481f0.