functions, rethinking