renamed comp -> decompose