Refactored to move out min requirements.