The preceding pages have tried to identify the knowledge that a good data-access component might encapsulate. The next thing to do is design the component's programming model interface. That is a job for another day, and it has been done better than I could have in the excellent article "The Basics of Programming Model Design," by Dave Stearns of Microsoft.5