do not invoke on EDT from EDT; closes #17