Added more requirements, but I am actually unsure what they do