using a datamapper patern