throw actual errors not strings