using submit (like executorService)