executor service instead of thread sleep