updated part 2 funct decomp level 0