Support more data formats. It turns out the performance overhead is very small.