pub type FnTimeGen = Arc<dyn Fn() -> Pin<Box<dyn Future<Output = SystemTime> + Send + 'static>> + Send + Sync>;
FnTimeGen provides current SystemTime