Please add docs of how each part of the code works
Please add docs of how each part of the code works