Works.  Needs more testing.