Streamlined SD library?

I was surprised to see functions that are hard coded to output to the serial port like "root.ls(LS_R | LS_DATE | LS_SIZE)". When I poked around in the library it looked like there was a lot of stuff like that. I bet a lot of space could be reclaimed by cutting some/all of the high level stuff and just documenting the calls used to do them. Like how would you do the equivalent of root.ls(LS_R | LS_DATE | LS_SIZE) but to output to a server or a display?

The library is too complex for my old brain but I wouldn't be surprised if the job has already been done, Anyone?