rename run to runwith and add run. tweak string to return error string, and add a test for it