Refactoring of commit 363cf1ab7390a113c64390357dede0e452b91a58