added functional and non functional requirements