More features and error handling