Second version with comments