added functional decomp