obj.em() is now always a function; obj.fp() returns the derivative