fix some compose and decompose bug