Final commented version.