version with comments