post delay now performed in a ScheduledExecutorService instead of a thread sleep