yet more error handling