Derivative class takes in required components and will properly call the user derive function