migration away from __functions