added explaining comments