PRE: refactoring