proper data copying; length; rest