keeping functionals sep