more efficient copy