refactoring extensions