first testing framework for first-order derivs using functionals