Added a ton of error handling and refined some messaging for invalid input. Updated API-breaking dependencies.