See: http://wiki.github.com/datamapper/dm-core
