updated functional requirements