Smarter parameter and error handling