added generic dao