refactoring, ideoms upgrade