Copy document.
Added guard clauses to non async overloads so that no tasks are started just to get ended by args validation exceptions.