added a requirements file and refactored sub_process