real impl synchrone way