use comments to clarify some methods