pip requirements refactored