only new class added is the functionDeriver class