Option: Pass function as a formatter

This is for API implementer. So we can pass a custom function as a parameter (as opposed to formatter file name).

This doesn't effect current implementation.