Final version.  It works.