use non-dependent function