added explanatory comments to methods implementation