adding generic dao impl