Add more comments to explain methods