added requirements
ordered more requirements