Don t compute the components you are going to discard after. I am not sure we need an auxiliary function here