added better error handling for service communication errors resetting model to previous state to ensure ui reflects what should be in the database