Final version, comments added