2.20.4 refactoring