refactored require