refactored requirements