rearranged for copy