back to function objects for algorithms