portable refactoring
portable refactoring