What are types of requirements?