call Thread.stop(..) but this doesn't work in JDK 8 so I needed to go through
and make the code interruptable.
I went down the line of creating a RuntineException rather than changing the API
with a checked exception. This should work well with any clients.