refactoring, ideoms upgrade4