splitting out ext functionals