some documentation in comments are added