add more comments to strategy pattern