just a work in progress.  segfaults