generic dao work