copy method
Added commentary
Refined error messages