Added comments through the code (unfinished)