add comments to make it more readable (for me)