This will be easier with a requirements file