finished bulk of functionality

one remaining feature: reuse a previous string from the history in the
listbox