Final version 2, Wrote some comments