One other nag (suggestion). Keep your base DBI and any object relational wrapper separate. A lot of use-cases don't need ORM, and separating the two parts means that adding a new db driver is simply a matter of plugging in the dbi part.