decomposition some functions