write: use convFn directly