add coments and DRY