require tempfile explicitly