more doc, error handling