using Executors to manager thread pools
using callback from one thread, and make it sleep:)