initial attempt. Roughly working, really bad UI.