refactored hpss into decomposition