better UI; some weird behavior, but functional; needs docs