v20 refactoring