First version with comments functions