Reviewed code, Changed little (just for readability), Left some comments as well with questions.