Added some comments on your first implementation