feat(errors): better error handling