implemented whitening