added some comments to clarify usage