implementation a helper function self_copy_n( )
update the test
fix some nomenclature issues