dry
handle some more errors