updated source.  Partially working.