Add generic dao layer