add documentation for error handling and parameters