Minimal generic data access layer. Work in progress - not ready for public use yet.