comment function purposes
first complete version