Be careful that f isn't uninitialized