Dataframe extension integration

+ Why not use a variable instead of a function? It seems that it would save a function definition and the second call.
+ On a related note, it would be cleaner to define the functions after you branch on the format. You could then use the same names for both (and not need the extra `process_function` and `finish_function` variables).