resolved issue #9 through interruptedException handling. All previous methods that handeled it themselves now pass the buck up to run() which closes