added programToString