Add generic component to allow user defined derivatives