destroy now has deleting function pointer and remove returns the value