all the requirements are attached in the file.