Fixes for discover properties, and some other issues

Executorservice allows you to submit a runnable, and returns a future. 

You can then treat similarly to your code, but can cancel the future with interruption if it exceeds your execution threshold.