Final commit. Added some comments.