thanks @MitchesD for help (cherry picked from commit df21162fe44d2ff29c201a9004586f560789c38b) (cherry picked from commit 3a4f54197c05ce4209c7e659acfd382896607265) (cherry picked from commit f50df728201849ee7185d33c5a061c91e781c8de) (cherry picked from commit 95bae7143f0f4bb7d5975f8a61daa3c533f48225) (cherry picked from commit 5406f82044e7bd6ceb024a67f33c1674400cdc1f)