Final agreement.

Updated from the initial version.