refactored extensions