This looks wrong to me: if self.copy is false, the data does not get centered in transform, if I understand it right.