Final version

Completed, with client approval