coerce into str before buf