Now sort of works.  Has random crashes.