added description and some comments