never throw strings. always throw error objects

strings do not have stack traces.