added more comments to follow protocol