implemented fun2