Abstract decompositon methods