coments for most of functions