decompose the build