switched implementations from Runnable to Executors