https://thecode.media/decompose/