whitespace cleanup
basic pluggable UI (fixes #12)