use jit only when needed