The new version with comments