Please add comments to each function just so i can understand how the interpreter works.