adds error handling