Rewrote the datasource implementation.