render direct to string since that is what is used in tests