Add requirements file
General refactor