Regarding Class::DBI::Loader, I've briefly looked at it before and thought it looked very handy (especially in introducing Class::DBI for a large number of existing tables). But does this work if you need custom logic in the module in addition to the basic column/relationship definitions? Can you still define My::TableName as a package, add the logic there, and have perl see it automagically? It's still unclear after reading the docs and code.