far more difficult than I imagined; not working but good stopping point