Added some comments, still needs more