Added requirements and assumptions