and decompose