depend on function-approximator