newest version, with comments