external copies buffer and writes channels separately - stable