Add copying functions
Fix corner case
Improve notation
Clarify function return values