review till line 505
review till line 685
review till line 800